Every time we have done a Western ( Falmouth, Cozumel and the Cayman Islands) cruise everyone we have dealt with have taken America Dollars(cash).
Only issue we ever had was many years ago when we purchased a watch and they gave us an American dollar price but charge our CC in Pescos - we got hit with a foreign currency fees by our credit card.
If you are going to charge anything check with your CC company first and also about ALL potential fees before you go on your cruise.
My card told me there was no charge to use it in the other countries - but they did charge to convert the money to dollars (so glad I asked in advance

)
Last time we were in Cozumel we went to Mega, (A large retail store that sells just about everything).
All the prices were in Pescos however they did take US Dollars (cash) when we paid but did give change back in Pescos.
Most other stores had their prices in US Dollars.
In the Cayman Islands several places did take US dollars but some had a conversion to Cayman Dollars for the cost.
The places we went to in Jamaica took US dollars.