Le problème ne vient pas du echo car si l'on fait echo "  a", cela affiche bien les espaces devant (sur mon ordinateur).
 
Le problème ne vient pas du cut car si l'on fait echo "     abc" |cut -c1-5, on a bien les espaces devant.
 
Le problème est donc en amont.
 
Je devine qu'il s'agit du piège classique
for ligne in `cat fichier1`  | 
La solution consiste a remplacer cette boucle for par
cat fichier1|while read ligne  |