Grubhub actually only charges 10% for delivery.
It charges an additional 15%+ for the marketing component (to get your restaurant listed and to appear higher up in search rankings).
In other words, if a restaurant sources their own customer and only uses Grubhub for delivery, they only pay 10%. This charge seems reasonable when compared to what it costs to have an inhouse courier.