Reinstalling with the “Use WSL 2 instead of Hyper-V (recommended)” box unchecked fixed the issue. (Reinstalling probably wasn’t necessary because WSL is a config option in the general settings.)
I don’t know what that has to do with a named pipe. Anyway, without understanding the problem, I pushed buttons until I got past it.
PS C:\temp> [System.IO.Directory]::GetFiles("\\.\pipe\") | Select-String docker_engine
\\.\pipe\docker_engine
\\.\pipe\docker_engine_linux
PS C:\temp> pushd 'C:\Program Files\Docker\Docker\'; .\DockerCli.exe -SwitchDaemon; popd
PS C:\temp> [System.IO.Directory]::GetFiles("\\.\pipe\") | Select-String docker_engine
\\.\pipe\docker_engine_linux
\\.\pipe\docker_engine
\\.\pipe\docker_engine_windows