O motivo mais provável é que você tenha editado seu script no Windows e suas linhas sejam finalizadas com CR-LF em vez do LF único esperado.
Use o comando dos2unix
para corrigi-lo.
dos2unix script
Como alternativa, você pode simplesmente executar
tr -d '\r' < script > script.fixed