Quando você executa um comando através de ssh , ele é executado chamando seu $SHELL com o -c flag:
-c If the -c option is present, then commands are read from
the first non-option argument command_string. If there are
arguments after the command_string, the first argument is
assigned to $0 and any remaining arguments are assigned to
the positional parameters.
Então, ssh remote_host "bash -c foo" será executado:
/bin/your_shell -c 'bash -c foo'
Agora, como o comando que você está executando ( export foo=bar ) contém espaços e não está corretamente cotado para formar um todo, o export é considerado como o comando a ser executado e o restante é salvo na matriz de parâmetros posicionais . Isso significa que export é executado e foo=bar é passado para ele como $0 . O resultado final é o mesmo que correr
/bin/your_shell -c 'bash -c export'
O comando correto seria:
ssh remote_host "bash -c 'export foo=bar'"