Para referência futura, encontrei o problema e não tem nada a ver com o Bash.
O problema é que o sshd_config tem a seguinte entrada:
AcceptEnv LANG LC_*
Isso permite que minhas variáveis de ambiente locais denominadas LC_whatever (incluindo LC_CTYPE, a problemática) substituam as configurações remotas; assim, quando eu conectei, o processo ssh definiu suas variáveis de ambiente de acordo e o processo bash as herdou obedientemente. Em nenhum lugar neste processo há uma verificação de que a configuração LC_CTYPE é válida no lado distante da conexão SSH.
Minha correção temporária é especificar um LC_CTYPE bom e conhecido no comando específico que eu executo no lado oposto. Eu não sei qual é a solução "correta" para isso.