Possibly cheaper, but since Cozumel is on an island, and the ruins are on the mainland, you will need to get a ferry ride over. With that extra detail added, and the need to make sure you get back to the ship in time, I'd recommend going on a ship's shore excursion for that.
As far as souvenirs, some great "free" ones are the daily paper you will get, which lists the activities offered that day, a little information about the port you are calling on, and the dress code for dinner that night, among other things. You can fill a scrapbook with just those!