Here's the issue with a debit card. Every hold removes balance from your account until the hold is released.
So, if the ships puts 3 $200 holds on your account during the cruise, that's $600 that is held until it's released 7-10 days later. However, at the end of the cruise, the final charge of $600 will be charged, so that is $600 that is immediately withdrawn from your account, plus $600 in holds waiting 7-10 days.
With a credit card, the holds (pending charges) don't affect your cash balance.