De acordo com o manual bash , você deve usar $(< FILE) em vez de $(cat FILE) . Mas não há necessidade de usar a substituição de comandos:
for some_file in *.md
do
echo -n "$some_file: "
cat $some_file
done
Como você já sabe da substituição do processo, também pode fazer algo como:
for some_file in *.md
do
cat <(echo -n "$some_file: ") $some_file
done