I would say Trunk Bay! Not only for the beauty, but the snorkeling is better as well. Trunk bay has an underwater trail and it's less crowded in the water. Also cheaper then Coki. But Coki was good too, a little crowded.
How is it cheaper? Coki is a public beach and I don't believe there is an admission charge. Transportation would be cheaper to Coki because it's one cab ride vs. cab, ferry, cab to Trunk Bay. Are you referring to equipment rental?
Actually I think it depends on how the weather has been when you go. When we were there 2003 Thanksgiving we went to Coki Beach and others went to Trunk Bay. They said the water was not so clear at Trunk Bay so the snorkeling was not that great. We on the other hand had crystal clear waters and saw lots of fish.
Plus it depends on your time. St John is 3-4 hours just in travelling round trip.. That's a lot of time if you are only in port 8 hours. I'm sticking with Coki and St Thomas cuz I've never been there. I'll go to St John next time.
You also may want to consider Cinnamon Bay on St. John. Last time we were there we went to Trunk Bay for a couple of hours and then headed over to Cinnamon for a few more hours and still had time to do a little shopping at the pier. We loved them both but we had the beach at Cinnamon completely to ourselves. I have pictures of both beaches at http://community.webshots.com/user/jean_lynd that may help you decide. They are in the 2 albums on the Explorer. Haven't been to Coki yet so I can't help with that one. It took us less then an hour to get there and back each way. I guess we were lucky with traffic and ferry times. I hope this helps!
To save money on getting to St John's I toke a local bus ride $1 pp each way to Red Hook and a $3.00 Ferry to St John's one way. Plus a bus ride to the beaches $3.00 pp. (adult) kids are cheaper. So it cost me roughly $7.00 pp to get from the pier to the beach on St John's. There is a bus stop 3 blocks from the peir. I could of just taken the Ferry from the pier but I think the schedule is more demanding (very few and I missed the first one). Plus I got to travel on land and see the island as a local would.
While I thought that St. John is very beautiful and worth the time and expense to get there, the snorkling trail at Trunk Bay was very disappointing. Lots of people and few fish. We drove by Hawsknest Beach on St. John, and that beach looked equally beautiful and had only a handful of people. If I ever have the opportunity to go back there, I would rent a car or get a cabdriver for a couple of hours and drive around the whole island, stopping at more remote beaches.
Another point I need to make: many posters advise to "get to Trunk Bay EARLY." Well, how early you get there depends on when the ship gets into port, and when you get to get off. The Glory was scheduled to arrive in St. Thomas at 10 am, we were lucky and got there 9 am, but then with all that immigrations stuff, it was 11:30 am when we finally got off the ship, and 1:15 pm when we got to Trunk Bay. That hardly qualifies as getting there early, but there was no way we could have gotten there earlier.