I've done one cruise ship dive excursion from the cruise ship, and also have gotten stuck on boats that were filled with 'cruise-shippers' when I was staying on-island in a couple of places. The main problem I see is many people get on the ship, look over the list of excursions and see the scuba one and say 'Wow, I haven't done that in awhile, think I'll sign up for that!'. My one cruise ship excursion, I was also diving solo so I was looking for a responsible buddy and got in a conversation with a guy who also needed a buddy. After talking for awhile, I found that he was not certified but had 'borrowed' a c-card. I separated from him at that point (incorrectly assuming that the dive op would see when he filled out the release forms that the person in the photo wasn't him). The dive op informed us that there were too many to go on one boat and they were going to put 10 divers on the smaller boat, there was a rush to that boat and I was lucky enough to be one of the ones in the smaller group. We had a very nice dive, it seems the more experienced divers ended up in our group. I saw him back on the ship later, with his not-so-happy wife because he had ruptured his eardrum since he didn't know you needed to equalize.
Not to say that all cruise-ship divers are bad, but I seem to run into a higher percentage on those trips than when diving with a land-based group that is usually there only to dive.
If at all possible, I would book my dives directly with the dive operator. The downside to this is that if the itinerary changes due to weather and you skip a port, it's usually easier to get your money back if you're booked through the ship.
If you're doing Grand Cayman, there is a great shore dive just to the right of where the cruise-ship tenders drop off called Eden Rock. It's shallow too so snorkelers can tag along.