Well, I don't know what the current wisdom is about getting the best rates, but I would imagine that you could just pick up some Euros at Heathrow on the way in. Or, you could take a couple of hundred Euros to get you started, and then depend on ATMs, which are no doubt all over the place and usually give you good rates.
Can't comment on the ship, but I'm betting they will exchange money for you, and also tell you where the best place to change money in port. You can always pick up more Euros once you are in Rome, at an exchange or at an ATM.
Also can't comment on how much you might need, but if you are going to be in Rome for three days, paying your hotel by credit card, but perhaps not restaurants. My experience in Athens is that they take credit cards even for admission to historical sites, I'm betting museums do the same, but maybe not all those beautiful churches in Rome. Maybe a couple of hundred a day?? Not sure, that may be too much, but Europe is expensive for we North Americans, for sure.
Interested to hear the result, since we may do a pre-cruise in Rome next year.