To be fair and in the interest of complete and honest disclosure, DH and I have spent 3 wonderful vacation on St John, USVI, and one vacation on Grand Cayman. Being so enamored with St John has clearly colored the lens through which I viewed Grand Cayman. They are two completely different islands, with different histories, cultures, perspectives on tourism, etc. Nonetheless, I'll go ahead and compare them with my thoughts since it is a question commonly raised on travel boards.
Topography/geography - Winner: St John.
Grand Cayman is generally flat, with few distinguishing geographic features. It's like a tropical version of Delaware, and if you have ever driven a distance through Delaware, you'll understand how boring it is. Sadly, Grand Cayman was hit pretty hard by Hurricane Ivan in 2004 and has not fully recovered in terms of foliage or in infrastructure, which leaves bits of ugliness in full view.
St John, in contrast, has been lucky not to have been struck by any hurricanes since I believe Marilyn in 1995. It is a lush and green island, and more importantly, mountainous, which makes driving both challenging but also interesting. It also offers superior choices for non-water based activities like hiking. It's a common statement that the mountainousness of St John makes the water less clear than Cayman because of the runoff - but we've never seen that to be the case. St Johns many coves are actually much better protected from wave action (gosh, I don't think we saw any wave action on any beach with the exception of Drunk Bay on St John) whereas Caymans beaches are mostly exposed, protected only by the barrier reef ringing the entire island, which dampens but doesn't quell most wave action. This silts up the nearshore areas on Grand Cayman more than any runoff silting we ever saw on St John.
Beaches: Winner - St John (with a caveat)
My ideal beach is secluded, ringed with tropical green foliage, and private. Size is not an issue - the beach could be just a couple of yards wide across and to the waterline. This describes St John's beaches perfectly. There are several places where you could potentially be the only person at the beach at any given time. Because most of the beaches are inside of the National Park, there are not towers of condos and hotels lining beaches - eradicating all traces of palms and sea grapes from view.
In contrast, Cayman's signature beach is 7 mile beach, which is beautiful in its own right - powder white sand, gin colored water, etc. But it's so darn crowded - whether it be by beach toys, people, buildings, stuff in the water to mark swimming areas seperate from boating/motorized areas. Just not my style. Now some people love the idea of a perfect sand beach with all these amenities there to entertain you, but that's not me. I'm entertained by quiet, and good snorkeling.
The East End of Cayman is the closest one gets to a comparable St John experience. The big "but" here is that it is really challenging to find those great spots. There are no signs marking anything but public beaches, and there is so much water front development either there or in progress you're never really sure whether you might be intruding on someone's private property. Not fun. The closest we got was on the beach near the Queen's Monument, where there was fantastic snorkeling, a secluded little beach (somewhat) and very few other people to be seen.
Tourist Services: Winner - St John (hands down, no doubt about it!)
While I think that accomodations on St John might be more expensive than those on Cayman (much more competition on Cayman, only two real resorts on St John) the restaurants on St John are much more reasonable in price, value, and quality (in my opinion). I just felt like we had a lot more choices for reasonably priced meals on St John, and they were far more accessible regardless of where you were staying. Now, I'm not being fair in that Grand Cayman is 22 miles end to end vs. St John's 8 - but it's not my fault that Grand Cayman hasn't done a better job of locating some of it's tourist infrastructure on the East End to compensate.
One huge disparity was the ease of finding beaches and neat places to explore. On St John everything is marked with a sign - from trailheads to beaches. This is mostly because these places are within a National Park, which provides the basis for marking all these places with the ubiquitous brown and white signs. It really made it so much easier and less stressful for us on our first trips to have all those signs, so we could match our research with our location.
I can't think of a lot of other things to compare the two on. Driving on St John might be a lot more challenging because of the hairpin turns, hilly roads, and unexpected beasties wandering around (donkeys and goats and cows, oh my!) There isn't a lot of "entertainment" infrastructure on St John, like clubs and jet ski rentals and parasailing and whatnot. Of course, that's why we prefer it. Cayman can't do anything about it's topography and it certainly caters to a different kind of tourist - but they could appeal to the St John crowd by making those secret spots a little less difficult to find, limiting the amount of waterfront development to keep secret beaches and pretty little coves from feeling like someone's private property, and spreading out some of the basic tourist infrastructure (like places to eat) to the East End to help people who want to stay out there.
Different strokes for different folks. Thank goodness for that. Now I'm just wondering how I can get back to St John!