When spago is installed via the setup-purescript GH Action, then only the sh-based spago is installed. When using npm i -g spago, then both spago and spago.cmd are installed.
Ideally, one should just be able to write spago version and the correct one is used regardless.
I've found that the sh-based one can be run correctly via
cmd.exe /q /d /s /c "C:\path\to\spago version"
However, node-execa will attempt to run:
cmd.exe /q /d /s /c "sh ^"C:\path\to\spago^" ^"version^""
because the first executable it finds is spago which is a file that starts with a shebang.