O stderr não é redirecionado para o arquivo. Muito provavelmente você precisa
./script.sh > results.txt 2>&1
para redirecionar ambos para results.txt. Note que
./script.sh 2>&1 >results.txt
é algo diferente, pois redireciona stdout para file e stderr para o stdout não redirecionado. E é claro que você pode substituir &1
por um nome de arquivo diferente.
Se você está usando bash você vai se safar com
./script.sh &>results.txt
Não que em todos os casos não seja garantido que a stdout / stderr entrelaçada esteja na mesma ordem que no console. Isso funcionará para tudo, não apenas para scripts bash.