Debit Card: comes out of your bank. The money is taken out of your account & then sits in pending status before it posts to your account & is deducted from you daily available balance. When it is in pending status, the bank determines how long it sits in pending status (3-5 days normally), not the cruise line. Your payment may 'disappear' if the time frame lapses and then it may reappear the next day as a charge. Many people think they are being double charged when they are not & this ties up their funds.
Also, keep in mind that many cruise lines charge a fee for authorizations. If you use your debit card 10 times, that is 10 authorization requests. SO...you will see each individual charge plus at the end of the cruise you will see a charge for 10 x the authorization fee for all the charges you made during the cruise. Again, it may appear that you were double charged when actually you have only been charged once (because it takes 3-5 days to fall off from bank).
Example: Let's say you see a pending charge for $100 for the expense account you set up with your debit card 2-4 days prior to sailing. Now, you arrive and you place $100 on your expense account. You will view $200 taken from your daily balance. The $100 pending will probably not become available for use until after your cruise is completed if you are on a 3 day cruise because the bank has it sitting in pending for 3-5 days.
Credit Card: Credit authorizations fall off quicker (normally 24 hours and you do not normally see the authorization, but it did happen. Those charges just fall off quicker.
I use my debit card for expenses getting to and from the port and load a credit card onto my expense account so that I do not have to fret over pending charges affecting my available balance.