A razão por que funciona assim é como o shell funciona. Primeiro, começa a interpretar tudo o que pode. Ou seja ele interpreta o que está em "aspas. Ele não interpreta o que está em 'aspas. Tente comparar echo "$(date)"
com echo '$(date)'
. Se você quiser fazer o que você quer, você deve usar outra abordagem, por exemplo use:
awk '{ system("echo 'date -d @""' "" ");}' < mlog.log
Ou seja. Faça o awk dividir o arquivo em colunas e execute o comando do sistema que você alimenta com colunas conforme necessário. Você não pode usar o sed da mesma forma porque o comando seds não tem capacidade de chamar o comando shell.