Because, as it is currently implemented, creates a tempfile where the stderr of the started Chrome process is redirected to, and then the file is opened again (while Chrome is running) to read from it the remote port.
On windows this fails because the temp file can't be opened twice.
The alternative is to let subprocess create a PIPE for stderr, and read directly from it; with no intermediate tempfile needed.
Filing with low priority as running a remote cros from a windows host is probably not something we worry too much about.