It's a 1 room-night penalty, not a 100% penalty, like I've seen some people post.
It's the same policy at Hotels.com.
It only applies to their merchant inventory.
Since 60% of online hotel purchases are through those two sites, it appears that most of the people who reserve online disagree with you on whether it's reasonable or not.
Besides all that, what makes you think it's unreasonable?
Expedia and Hotels.com both have to pay for the merchant rooms they tell the hotels they will fill, but don't, if you cancel right before your stay. The 1 room-night penalty is to discourage you from canceling so late, and to cover their costs if you do. Sounds reasonable to me.
If you don't like the policy, buy the cancellation insurance, cancel before 2-days, book somewhere else with a different policy, or pay the full rack rate.
Most people are willing to accept the 2-day policy to get the merchant rates.