Semelhante à sua abordagem,
docker exec -i my_container dd of=file < file_on_host
que oferece um bom resumo de status e não grava os dados no stdout.
Existem provavelmente algumas outras opções,
por exemplo, cp /dev/stdin file
(o que pode não funcionar,
dependendo se o sistema operacional do seu contêiner suporta /dev/stdin
)
e sh -c "cat > file"
.