You will never get a good exchange rate on any ship. Personally I always use the ATM's when ashore.
Many cruise ships will exchange your cash "commission free" both from pounds to Foreign currency and back again. What they don't tell you is that the difference between the buy and sell rate is so large that they make a huge profit each time! Either get a good deal at home before you leave or use your debit card to get cash from the machines outside banks. Remember that there is usually a charge for doing this though! Sometimes as a percentage of the amount you withdraw, and sometimes per time you use this facility. If the latter is the case, then it pays to take out one large amount rather than several small amounts. Try to find out which banks in the countries that you are visiting are associated with your bank at home, many have group members around the world. This can sometimes be useful to know if you have any problems. Happy cruising.
Whatever you do, do not be tempted to withdraw foreign currency abroad using your Credit Card, as on top of the other charges, you will also be charged an extortionate rate of interest from the moment you withdraw the money! Happy cruising.