Take a credit card, not a debit or card that draws from your bank. If there is fraud, just report it to the credit card company and all will be fixed. A card that draws from your bank accounts is more of a pain because the money is gone and you have to get it back. Also, take 2 credit cards and use 1 for shore and 1 for ship. That way, if there is fraud, it doesn't affect your ability to pay on the cruise.
We usually carry dollars and try to pay in that. We avoid using credit card unless it is a reputable shop, mainly those listed by the shopping people or known brands. Most places, especially in the Caribbean, are happy to take dollars, but may give you change in another currency. So, bring small bills so you can pay exact amount and not get change you may never use again.