We have been to both St. Thomas and St. John's on both cruise and land vacations, and for cruising, I recommend staying on St. Thomas. Like my cruise last week, the Magic passengers often have to tender in. So, add up the time to get a tender number, take the tender to the shore, get to Red Hook, take the Ferry to St. John's, negoitiate a taxi to one of the St. John's beaches, that could be half the morning, and a lot of aggravation.
Belive me, St. John's beaches are amazing, but we were at Magen's Bay last week and had a wonderful, incredible time. The beach does get crowded, but it is a very shallow beach, so you never feel the crowds at all. Who cares if there are people to the right and left of you, as long as you feel you have directa ccess to the water and your own spot to stretch out on. There is lots of natural shade and picnic benches, etc... to really enjoy a day at the Beach. We paid 6 dollars each way pp and were at the beach very quickly. It was our best day.
Hope this helps!
peg