Eu acho que você não usou um shebang ( #! /bin/bash como a primeira linha do seu script). Nesse caso, o script é executado usando /bin/sh , que é /bin/dash . E echo in dash não suporta o% não padrão-e (dê uma olhada no Padrão POSIX . Você realmente não deveria usar echo -e . Use printf para um comportamento muito mais portátil. Veja Por que é printf melhor que echo '? no Unix e no Linux. Os seguintes comandos devem se comportar de maneira idêntica:
bash -c 'printf "%s" "Enter your name"'
dash -c 'printf "%s" "Enter your name"'