You say okay, pay for the Big Mac, and then get a small pile of shredded lettuce because that is all that is in stock.
Then you wouldn't be getting a burger. When you cruise, you pay for a cruise, which you get. And having sufficient product on hand to provide a burger is something that is mostly controllable; being able to get to a specific port in bad weather isn't something that can be controlled.
The costs of compensating thousands of people due to weather preventing a port docking is not something
any cruiseline is
ever going to do on a routine basis. That's why cruise lines have you sign an explicit contract regardless of whether you read it or not. At some point good customer relations is not worth the cost of constantly compensating people for something totally outside of your control especially when you ask for their agreement upfront. The occasional extreme event like a hurricane maybe but not every single time it's difficult to get into a port. And while they may advertise CC, there's no way of knowing whether that was the sole reason someone purchased and thus deserves compensation for not getting it. I personally could care less. But what if I wanted compensation because they had to cancel the fireworks because it was too windy. Or because I only saw Mickey and not Minnie. Slippery, expensive, slope.
I was hungry when I wrote this. But other venues do provide compensation if there is a cancellation due to weather: e.g., sporting events, concerts.
Not really analogous. In the case of a sporting event or a concert that is cancelled, they haven't provided you with any service (and depending on the contract may not even have to refund). The cruise cancelled a port, not the cruise and since the contract says you will get a cruise, they're only obliged to refund the port fees. I learned that the hard way years ago when we booked a meeting room at a hotel for a conference. We didn't read the contract closely enough to realize that it committed them to providing space for a certain number of attendees, not the specific room we thought we were booking. We got stuck in a room that was sufficiently large for the conference but the layout was awful for our purposes. We argued with them but the contract had a clause that said that they were providing a room of a certain size, not
that room. I've made sure to never sign a contract since then that didn't specify which room was being provided or at least that they can't change it without our consent
and under specified circumstances. Regardless, there is still always a force majeure clause that says that if they can't provide the room due to circumstances beyond their control, they don't have to compensate us for it. Booking to another party would be under their control, but a fire would not be.