If you want an inexpensive beach day the closest town of Mahaluah is the place to go. Very relaxing, only $2 each way to get there by taxi, the locals don't hassle you if you say no to their souvenirs and the long beach is sandy, warm and easy to swim in.
I personally love Roatan but I was fighting a cold I received on the ship so stayed onboard. When I go I end up at West Bay beach where the water is beautiful. The best place for a beach day.
If you want to shop for souvenirs this is the best location as there are miles of stores to wander in and out of. Lots to do in Cozumel so you won't get bored.