I've never changed money on a cruise. On ship, any additional expenses (like alcohol or spa charges) will be put on your ship's account, which is charged in dollars. St. Croix and Puerto Rico won't be an issue--they're U.S. territories. Labadee is a private island, and I believe anything you buy there goes on your ship account (I haven't gone to any private islands, so if I'm wrong here, please correct me!) The Dominican Republic and St. Lucia, then, are the only places where your US dollar isn't the main currency (and they use different currencies from each other).
That being said, a lot of places that are cruise stops will have things priced in dollars as well as the local currency. If I buy anything, I generally use my credit card, which gets the best exchange rate available. If you choose to go that route, be sure to notify your credit card company that you'll be traveling so they don't reject a valid charge! If you want to do something that absolutely requires local cash, you can almost always find an ATM where you can withdraw a small amount to get you by for that one day. And it has the same exchange rate advantage (but the same reminder to tell your bank you're going to be there!)
Don't stress--you're going to have a fabulous time!