Always offer. Remember that expenses include gas, oil in a
stroke, launch fees, towing costs.
Also consider the relative cost. In Monterey, a two-tank
commercial ride costs $75-90.
I've got a boat, and I appreciate it when my guests offer. I'll
generally turn them down if we stayed in Monterey Bay, accept
if we go down to Carmel. I never accept on Underwater Photographic
Society boat dive days. One good way to handle it is to get the
fills after diving. Best line I've been got fed was "I found this soggy $20
on the dive. It should go for gas." ;-)
BTW, the CG requires a captains license when it's "for hire", but the
law says that "sharing the expenses of the day" is NOT for hire.
It didn't used to be that way: "you bring the boat, I'll bring the
beer and bait" was illegal.