It really depends on the cruise lines and the ports. In Hong Kong and Singapore, U.S. dollars were rarely accepted. In Vietnam they legally cannot accept U.S. currency but some do, but at the risk of arrest.
Some ships will have the major currencies and it may be dependent on how long you have in each port. If it's overnight there is a better chance they will have it on board.
The best thing is to hit a "BANK" ATM and pull out as much local currency as you will need for the time you are there.
__________________ Cruisemates Community Leader/Moderator
"There is a great difference between being well traveled and just having been to many places." ~Me
I just changed currency in the airport, if you get $350+ they will buy back your leftovers when you come home. So get 75-100 per country and even if you.spend zero you can exchange it back and just loose 9.95 fee and the small differences in exchange rate.
I always use an ATM when I am in Asia or in South America. I find it is much easier than having to change a load of money at the airport or wherever, which you then have to carry around with you. But watch out that you donít take out money every day and get charged every time Ė if possible use a card/bank that doesn't charge for overseas withdrawals. Make sure you've got insurance for your baggage/ money if you are planning on carrying much cash around with you. The insurance you get with your credit card is not usually enough to cover you if you get robbed.