Without knowing specifics, it's difficult to say... could be different compilers (clang on MacOS, maybe gcc on Linux?), linkers, file system caches could be warm on one, etc.
There could be different code being generated (#ifdefs, etc) per platform and architecture.
Having said that though, as someone who got an M1 MBP (10-core) a few months ago, I also found that CPU-wise (ignoring memory/cache bandwidth, which is much faster on the Mac), it wasn't really any faster than a 2012-era dual-socket 4 core Xeon at 3.3 Ghz for compiling and raytracing (the latter doing lots of FP calculations which I'd expect the M1 to compute OOO really well with how wide it is) when the code was CPU-bound. The power usage is very different though obviously. Hyperthreading also helped the Xeon quite a bit.
Battery life is very impressive though, and haven't really heard the fans yet.