Why not just use a MAC address for the default gateway and get rid of the seemingly unnecessary ARP table lookup for each packet that traverses the system?
The ARP table lookup is not unnecessary. Sure, you could implement routing without it, but sometimes indirection is useful because of the indirection – ARP provides a useful abstraction here in the same way that it provides a useful abstraction when addressing a host directly.
As a practical example, relying on ARP allows the gateway to be physically changed without routes needing to be reconfigured, in much the same way as relying on ARP allows the destination IP address to be reassigned to a different host.
Such indirection also allows the routing table entry to look and behave the same way regardless of the medium. Not all links use a 48-bit MAC address – sometimes it's 16-bit, or 64-bit, or 128-bit, and sometimes it's a point-to-point link that doesn't use MAC-layer addressing at all (and therefore no ARP, with the only possible destination being "The other end of the link").
This applies to administration as well. If the routing table were to directly use MAC addresses, it would be the only place where the network administrator needs to specifically deal with lower-layer parameters for no good reason, given that regular IP destinations do not require that.
For example, when addressing a host on your local subnet, normally you do not treat it as a special case and specify its MAC address to avoid the "unnecessary" ARP lookup. Addressing an IP host is uniform whether it is local or not (and indeed it is the purpose of IP to isolate applications from such link-layer-specific details). It makes sense that the same uniformity extends to the routing table as well.
(And perhaps there would be more than just a raw translation involved in some cases – perhaps some hypothetical network, like IP-over-ATM, would require to establish an 'virtual circuit' for each local destination so the 'ARP' lookup result might be a temporary circuit ID instead of a static address.)
Though some platforms do allow nexthops that aren't just IP-resolved ARP addresses. For example, it is becoming increasingly common to support IPv6 nexthops for IPv4 route entries, so that purely IPv6-addressed routers could still forward IPv4 packets. (Allowing raw MAC address nexthops would perhaps make sense in some cases, but usually an IPv6 link-local address is good enough – and again keeps the uniformity.)