Como sempre, a resposta está na citação.
echo -n $TEST > text
Isso será expandido para:
echo -n test > text
Observe os dois espaços após test . Os únicos argumentos echo são -n e test . Nada mais. O espaço se perde aqui. Para mantê-lo, você precisa cotar duas vezes $TEST :
echo -n "$TEST" > text
Veja também: Citações e escapando no wiki do Bash Hackers.