Docker running badly is just as much a Docker problem for it being so tied to Linux as it is a macOS problem. It’s one of the big cons of a “ship the whole rainforest” approach: you’re trading fewer variables for your application for performances losses due to greater possible incongruities between the abstraction and the host.
One would have similar issues rigging up Docker to run on FreeBSD, because that’s also not Linux despite being plenty UNIXy.