Dzul Ha has very good snorkeling. Seems like there is a little beach bar there, and I think they either want you to give them a few dollars to use their facilities there to enter the water, or promise to buy a few Coronas after your swim.
I've heard good things too about snorkel trips to Palancar, although every time I've visited there I'm always about 60 feet UNDER the water.
You can't go wrong either way. Why not rent a car and snorkel your way around the island?