xrandr precisa da variável $DISPLAY configurada para informar qual sessão X está manipulando, e isso não está sendo definido no ambiente cron.
xrandr pode estar trabalhando em sua sessão X local padrão, ou uma segunda que você iniciou executando startx de um TTY, ou uma sessão para um display remoto sendo encaminhado via SSH, ou uma sessão X aninhada rodando dentro de outro um usando o Xnest, etc. Sem a variável de ambiente $DISPLAY (ou o argumento de linha de comando --display ) ele não pode saber em qual sessão se conectar, então ele é liberado.
Por exemplo, o comando a seguir pode resolver seu problema:
DISPLAY=:0 /home/user/screens.sh