I just went on this cruise recently. Dove Grand Cayman, Cozumel and Roatan.
Tommy, I think we were on the same cruise
On Grand Cayman I went somewhat out of town to do a shore dive with Divetech. There are lots of options there.
On Cozumel Carnival no longer offers dive trips (may be will again by June) because of an accident that happened to a cruise passenger with official dive op. I dove with Alex scuba (found him last minute) which turned out to be a great choice.
On Roatan Anthonys Key is currently the dive operator for Carnival. They were ok, but according to what others say, there are better choices.
Other than in Belize which is a tender port, and *very* slow (because ship anchors quite far from shore), other ports are either at a dock or a very quick tender ride (GC). Most local dive operators are well aware of cruise ship conditions and will accommodate you accordingly. On Belize ship's dive op will pick you up at the ship directly, which cuts down a lot on travel time and makes missing a ship impossible.
If I did it again, I might have chosen another operator on Roatan (only because Anthonys Key op is a bit haphazard when it comes to cruise ship passengers, their boats for their own divers looked better organized). On the other hand, might have gone with the official dive op on Grand Cayman to get more diving done. Shore dive on GC took a fairly long swim, which meant that by the time I got to the "good stuff" it was almost time to turn back.
Either way - it's a great trip with lots of good locations to choose.