No te estás perdiendo en la tarea sino en el eco. Puede ver esto claramente si:
echo "${out}"
Verá un efecto similar con el siguiente script:
x="Hello,
I
am
a
string
with
newlines"
echo "====="
echo ${x}
echo "====="
echo "${x}"
echo "====="
que salidas:
=====
Hello, I am a string with newlines
=====
Hello,
I
am
a
string
with
newlines
=====
Y, irrelevante para su pregunta, pero me gustaría mencionarlo de todos modos, prefiero usar la construcción $ () en lugar de las comillas invertidas, solo por el beneficio adicional de poder anidar comandos. Entonces su línea de script se convierte en:
out=$(grep apache README)
Ahora, puede que no se vea diferente (y no lo es) pero hace posibles comandos más complejos como:
lines_with_nine=$(grep $(expr 7 + 2) inputfile)