The answer to your question depends upon whether you've actually got a legal right to receive compensation or whether it's simply a goodwill gesture on behalf of the cruise operator.
Scenario 1:
On arrival at the port you discover that your accommodation has been doubled-booked. Instead of the luxury outside cabin on an upper deck, which you'd booked, the only available available accommodation is a (much more basic) inner cabin close to the engines.
Under those circumstances the company have failed to meet their contractual obligation and they must provide you with compensation which (if you so demand) must be in cash.
Scenario 2:
Despite excellent hygiene standards onboard, a virus sweeps through the ship, making you ill for most of your trip. To make matter worse, a large wave (resulting from an earthquake on the ocean floor) results in you being thrown from your bunk, leaving you with a broken arm. To compound matters further, the ship is unable to dock at the port you most wished to visit, due to industrial action by port workers.
Under those circumstances the cruise company has no legal obligation to pay you a single penny in compensation (as none of the problems were due to their failings). However most companies would offer some form of compensation but that can take whatever form the company chooses as it's purely a goodwill gesture.
Chris