By including transportation to and from the cruise ship pier, it isn't apples to apples. You would need a cab to get to the meeting place for the viator option, which adds to the cost (though still a bit less than the Carnival one).
To be fair, it is justified for Carnival's price to be more than viator + cab combined, because you are also paying for the convenience of ship to tour service (though, I guess it is debatable whether that is something desirable, it is marketable, nonetheless).
For your: viator is $59 tour + $6 marine fee + $15 cab (estimated r/t) + $10 lunch (value of Carnival's lunch) = $90
Carnival = $89
So, I would say Carnival's price is fair.