I have dived in all four locations on cruise itineraries. For most of the year, I like Cayman, Roatan, Cozumel, and Costa Maya in that order, depending on time in port and the season.
Cayman: Tender port as mentioned, but there are ways to get off the ship on the first or second tender if time is critical. This past week, we arrived at 1030 and departed 1800, so had no problem doing a 1PM two tank dive with Lobster Pot and got back in plenty of time to meet the last couple of tenders. Downside: Strong winter winds may force the ship to bypass the port entirely because tender operations can be really dicey in high winds.
Roatan: AKR is the ship's dive op, and all dives have been excellent, and it is not as susceptible to missing the port in the winter.
Coz: If your arrival time is early (7AM), all is good because you can use any number of the really good off-ship dive ops recommended on SB. If you arrive @10AM, your options are reduced, and may have to use the ship's op, which could be good to so-so. Downside: Strong northerly winds in the winter months may close the port or prevent the dive boats from operating.
Costa Maya: Last place because I was not generally as impressed with the reefs I have dived compared to the other three. On a couple of cruises, Costa Maya was the alternate when Coz was closed, but finding a dive op that can take a bunch of divers on short notice may be problematic.
As others have said, if you can, dive all four ports.