Cancellation agreements are usually bi-lateral and damages limited to the amount you paid. Think about it, if innkeepers had unlimited liability in this situation, they would never accept reservations at all. At least with hotels, they have an incentive to make things right because they care about your future business.
This is not much different than an airline canceling and refunding your cheap advance purchase ticket and leaving you forced to buy an expensive walk-up fare at the airport.