When we specify an additional factor for authentication, we want to rely on being able to verify this information on the server side, because clients can and do lie to us. A security factor where we trust the client is not very helpful.
With TOTP or FIDO2/WebAuthn, this verification is via a cryptographic means. However, with geolocation, we rely on the client to tell us its location using an API on the client side, either involving a GPS receiver or data about local Wi-Fi networks. The result is then sent to the server. A client can full well spoof this information if they choose (and there are even websites that tell you how to do so), and so it is not useful as an additional factor.
Additionally, geolocation is not usually very interesting to tell us if someone is authorized. Most days, I work from home, and it's unlikely that an attacker can physically be present in my home. However, they could full well sit outside my apartment building or spoof my location. I do, however, sometimes work from somewhere else, like a co-working space or the library, and doing so shouldn't prevent me from gaining access. Nor should the situation where my ISP or my electric or water provider turns off an essential utility and I have to go work from a coffee shop. Similarly, if I'm visiting a friend out-of-town, even in a different country, that should also be okay.
As schroeder mentioned, location is also highly sensitive and identifying, and using it as an additional factor would be a serious invasion of privacy. Because there are solutions which are ultimately substantially more effective and substantially less invasive, it seems prudent for us to use them instead.