Se a saída de
echo 1l|ed test.rb
termina com \r$ você tem um <carriage return> na frente do <line-feed>
As linhas no unix são terminadas por feed de linha, por isso env procura o ' winruby\r ' e não ' winruby '.
edite seu script no ambiente unix com vi , ed ou nano e remova o '\ r' do final da linha.
Editar:
Eu posso criar o mesmo resultado que você, quando meu PATH estiver definido, mas não configurado para ser exportado.
# PATH is set but not exported
jo@hostname:~/tmp$ winruby --version
running winruby --version
jo@hostname:~/tmp$ env winruby --version
env: winruby: No such file or directory
# print variables starting with PATH
jo@hostname:~/tmp$ set |grep -e ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jo/tmp/bin
# print exported variables starting with PATH
jo@hostname:~/tmp$ env | grep -e ^PATH
# Oops ! nothing, so exporting PATH
jo@hostname:~/tmp$ export PATH
jo@hostname:~/tmp$ env | grep -e ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jo/tmp/bin
# Final check
jo@hostname:~/tmp$ env winruby --version
running winruby --version