my husband is a certified diver, we sailed on the Inspiration in 2002. He dove in both Grand Cayman and Cozumel. He enjoyed both places. Grand Cayman was a wreck dive an reef dive. Cozumel were both drift dives. He booked both tours with the ship and it was a good thing he did. The ship was scheduled to leave port at 5:30. I was on the deck having two fits when he wasn't back in the line by 5:15. He showed up at 5:20 and there was no problem, because we had booked these dives through the ship. We wondered about diving in Jamaca and a guide from there said that the other two ports had better diving . The guide would have took him diving if he really wanted to, he opted out.. For Diving tours, I advise doing the ship tours.
In most cases, I think that you are better off going with an independant dive op. You probably have a better time as the cruise excursions tend to use operators that have big boats and take lots of people. They are also geared towards the inexperienced dive, giving you the dive profile they want you to follow and limiting you down time to that of the person who uses their air up fastest. A more advanced diver isn't going to want the end their dive early when they have plenty of air left just because "Bob" sucked his tank dry in 30 minutes.
As to recommendations, generally scuba diving isn't recommended in Jamacia. Over fished reefs, lots of dead coral. Not the best place in the Caribbean to dive. If you have to dive, this is one time that I might consider using the ships excursion. It is Jamacia after all, not a stop I'd want to make. (Actually, even though I haven't been there, I wouldn't choose a cruise that did stop there)
Grand Cayman has excellent diving. A shore dive at Eden Rock, right near the tender dock, is the least expensive option. Other wise, GCM is expensive for almost everything. Off the wall diving and red baron diving are 2 operators that I have seen recommended several times, but I can't find the links to the sites.