I tried WSL briefly and discovered that the overhead of forking processes is annoyingly high, just like when I'd used cygwin in the past. (Maybe I should have expected that, but...) Try doing something like:
time for i in $(seq 1 100); do /bin/pwd; done | wc
Compare on Linux (or even Mac OS) vs WSL. I was disappointed.
Did you report this as an issue? They seem to be fairly responsive to feedback. Would be interesting to see what their take is.
I believe Windows Defender is responsible for a lot of the IO overhead within WSL. You can get around that by marking your development directory as "don't scan" within Defender.