Also, I learned the hard way from last time NOT to use the dive op organized through the cruise ship. I do my own research through scubaboard and elsewhere and find the highly recommended dive ops...you know the ones who actually care about safety (unlike the cruise ship contracted dive ops).
The only catch is, if you booked your dive through the cruise ship, you would know that they will HOLD THE SHIP for you if you returned late.
If you booked your dive through an outside facility. Do not trust. Do not believe. Do not take chances. Make sure the boat returns at least 2 hours before your ship depart. Factor in problems at sea (injuries, emergencies, engine trouble), traffic problems (at many docking facilities, which usually are in downtown areas). Before you know it, the 10 minute ride back to the port becomes 45 minutes, or even hours.
Dive trips offered by the cruise ship often is bland, within shouting distance from the ship.... But they can guarantee to get you back on board in time. If not, they will guarantee that the ship will wait for you, or at least, get you transportation to the next port of call - or a partial refund of you cruise if you miss it all together. The only problem we found with these ship scuba excusions, is that they don't always cater to beginner, and you can find yourself in a deeper dive than you expected. Also they tend to sell out quickly, often before you board the ship. If you forget your card, they will not let you dive, as some port are in remote areas, without internet access. I had my dive log, and they still refused to let me dive. Some cruise ship will be nice enough to verify your card for their contracted resort dive center by phone or by internet. To print up a replacement card online, you pay a hefty price for the internet access and the fee for an instant replacement card.
Unless you know your itinary that allows for full day at port, I would say, pay the extra $50 per dive trip, accept that it is going to be a so so dive, but at least your cruise will not be troubled by missing the ship.