โ— Shell
clean mode source โ†—

Message 174576 - Python tracker

I guess to return sh if supported, cmd.exe for Windows.
The reason is: other shells can have different calling agreements (I mean rules to process command line).
subprocess intended to use by library writers, so we need solid well known basis.

There are another option โ€” provide two functions: first for shell in terms of subprocess requirements and second will return actual user shell.
I like it.