We've taken a S. Caribbean cruise last year on Carnival Destiny.
We dove/snorkeled on each port then followed with an island tour. It was quite good in all of the ports, St. Thomas, Dominica, Barbados, St. Lucia, and Antigua.
This year we took an E. Caribbean cruise and one of the stops was St. Thomas again. We went to Coki Beach again. I did 2-tank boat diving. Coki Beach also has fairly good shore diving, and of course a beach to play.
Barbados the diving is decent on the south/west side and there are places where you can see lots of turtles.
St Lucia has the famous pitons. The cruise ships usually don't sail by them though, so to see them you'd need to be on a boat. You can go by land, a long drive, and have only a few good angles. We went with Dive Fair Helen and I requested the dive site Superman's Flight. It was by the petite piton, and the view was good. The diving was drift diving and was also quite good.
In Antigua, the good diving is in the south side. Most of the ship diving is in the northwest (where the ship docks) and not that good. We were fortunate to have arranged some good diving in the south.
Out of those place, I'd say St. Lucia for both diving and unique scenery. St. Thomas for both diving and beach. After that Barbados can have diving and beach, whereas the better scenery is at the east coast. Antigua at the south doesn't have beach, but has good scenery.