Dont' know if it's the BEST snorkeling, but many people including myselt went to Chankanaab Park on our own. They have lots to do there. Will keep you busy all day.
They have dolphins, an out door restaurant, replica of a mayan home, lots of nice walking trails,...
Have fun! Someone posted some good pics. on the photo gallery of the place. It's listed as Cozumal/Progresso.
Lots of good places to snorkel in Cozumel! If you want a snorkel guide, but don't want to use a ship's excursion, Eagle Ray Divers is nearby...about half-way between the San Miguel and Chankanaab. You could go to Chankanaab after Eagle Ray, if you wanted more snorkeling, or if you wanted to just get some good beach time. We dove with them, but had snorkelers onboard, including a first-time snorkeler, and we were all well taken care of.
You definitely don't need to go to the mainland for snorkeling, unless you are also going there for some other reason. I think Xcaret is a bit commercialized/Disneyfied, which might not be a problem, but just something to know. The trip to the mainland will bite into your time in Cozumel, but you may have a long day there??
I would also highly recommend eagle ray divers. We used them last year for a snorkel trip and they were awesome. My Mom, sis and I were the only ones on the boat. we actually had a guide go with us into the water and snorkel with us. He (carefully) brought things up from the bottom for us to see and touch, pointed out fish and even a couple barracudas, best of all kept a close watch on our Mom (poor swimmer) so my sis and I were able to relax and enjoy the "view." The boat followed along with us the whole way and was right there when it was time to get out. Another benefit was that we wanted to be able to swim with the dolphins as well as do the snorkel trip. They specially set up our trip so we would have time to do both! I am going back to Cozumel with friends in August and am already planning my eagle ray excursion! I'm thinking intro to scuba this time.