O sinal de dólar em sua string está sendo expandido no momento em que o eco é executado e fazendo com que a substituição do comando ocorra. O que você quer é passar a string AS A STRING para o arquivo. Há duas maneiras de impedir que a substituição ocorra.
-
Você pode escapar do cifrão:
/bin/echo "0 0 * * 1-5 ../..backup-\$(date +%Y-%m-%d).log"
-
Você pode usar aspas simples em vez de duplas para envolver a string:
/bin/echo '0 0 * * 1-5 ../..backup-$(date +%Y-%m-%d).log'
De qualquer forma, você pode testar esta declaração em qualquer shell para ver se ela fornece a string literal ou executa a substituição.