I have often found booking.com to be less expensive than a direct booking. It may be that I'm getting a less-choice room on booking.com, but I'm a low-price shopper, not a best-value shopper, so that result works just fine for me. If a hotel chooses not to beat, or at least match, the rate I can find on booking.com, I don't see why I should feel guilty about using booking.com.
My major concern with recommendations for Viator here is that the posters almost never acknowledge that Viator is a third-party that doesn't actually operate any of the tours. They say they were happy with a Viator tour in one city as if that is a recommendation for a tour booked through Viator in a different city. That is potentially confusing to less-experienced travelers, who may think Viator runs all the tours on its website. I don't think anyone believes booking.com runs the hotels it lists, or that being happy with one hotel found on booking.com means all the other hotels listed there are equally good.
I have no solid information on this, but I believe someone posted a year or two ago that booking.com's commission is about 15%. Someone else (in a good position to know) has said Viator charges 25% (or maybe it was "at least 25%"). So there may be that difference as well.