Contrary to a previous reviewer, we found the snorkeling at Desecheo the best that we've seen in Puerto Rico. The bottom is far away where the boat anchors, but if you swim a little towards the shore, you'll get to reefs with a rich variety of fish, in addition to being able to see down towards the deeper areas where we could see an eagle ray, a shark, a barracuda, and tuna. The crew were great and very safety minded and friendly. They were helpful and let us do our thing to explore while keeping an eye on us at the same time.
I haven't been to Vieques, but have snorkeled at Tres Palmas and at La Parguera, but in both places the agricultural run-off has compromised the coral. Desecheo is 12 miles out, but worth the boat ride there.