But any time you are emulating one complex low level API with another, there are likely performance penalties. Not to mention you are raising the complexity of the software stack and adding more surface area for bugs.
It would be better if there was an open source low level graphics API that every OS could support in addition to their own proprietary APIs focused on ease of use.
Funny enough, that would be Vulkan, right?
Note that WebGPU has been heavily inspired by Metal (AFAIK), and it uses translation layers on top of a number of APIs (whatever is available on the system). And it's not limited to browsers, despite what its name might suggest.
So it seems like your best bet to try something Metal-like that works across platforms.