To be honest I am not overwhelmed by Xcaret. I've been there twice and don't plan on returning. Some love the place. I think it is overrated. I also think it is unwise to go to the mainland when the ship is in Cozumel. Too much is eaten up in the transits, and this goes for any mainland tour. There is a beach at Xcaret but it doesn't have anything to "do" other than some tubes to float around in.
Many beaches on Cozumel. Playa Mia
has lots of stuff you can do besides sitting in the sand. The link loads slowly sometimes so bear with it.
Others like Mr. Sanchos
which is smaller and has less to offer, but isn't as crowded.