Du kannst printf statt echo verwenden.
printf "Subject: Test\n\nTest message from $(hostname)" | ssmtp -vvv dummy@domain.local
Innerhalb der Anführungszeichen bleibt \n zunächst eine Folge aus Backslash und n. Erst echo oder printf muss sie interpretieren. Dein Ergebnis zeigt, dass die verwendete echo Implementierung \n nicht als Escapesequenz auswertet sondern wörtlich ausgibt. echo ist historisch nicht einheitlich definiert. POSIX erklärt das Ergebnis von echo sogar ausdrücklich als implementationsabhängig, sobald ein Argument Backslashes enthält.
Bei printf ist die Interpretation von \n im Formatstring klar definiert. Die POSIX-Spezifikation schreibt für printf die Unterstützung von Escape-Sequenzen wie \n, \r und \t ausdrücklich vor.