Interesting topic. I worked in the hotel business for 10 years and the hotels & resorts I worked for never charged a cancelation fee. However, all of them charged no-show fees, which was only the first night's room & tax -- even if it was a 2-week reservation. Of course, this meant the room was unavailable for others to reserve prior to the day of arrival and potential guests may have chosen another hotel instead. Resevations canceled by 4pm the day of arrival, were not charged no-show fees.
Although I also think the cancelation fees are a bit excessive in some cases, the thing that chaps my hide a bit more, is when reservations aren't canceled (especially "in-season"), leaving a campsite unoccupied and potential campers being turned away because the campground was supposedly sold-out. It bugs me to see idle resources.
Of course, if we followed the same logic of cancelation fees and apply them to returned merchandise, retailers should be charging fees due to the administrative burden and merchant service fees they incur on returns. Similar to tied-up campsites, the product was not on the shelf for others to buy. Anyway, some retailers charge restocking fees, but not many.