In Mazatlan I would skip the tours unless you do the colonial villages tour.
Instead I would take one of the open air taxis to the Zona Dorado (Golden Zone) There I would spend about a half day exploring, shopping, etc. Then I would taxi back to the ship. This will cost you about $6.00 each way.
In the afternoon, I would walk less than half a mile. (to the left as you would be exiting the cruise ship terminal) I would then take a water taxi at the very small embarcadero to Stone Island, which costs a whopping $2.oo per person round trip. This is a lovely beach with great palapa restaurants, wonderful strolling, water sports, etc. This will give you an overview of the city and a great beachy afternoon for very little (almost nothing) money.
This is just my idea of a "great" day in Mazatlan. I've been there four times and this was our favorite day so far.