Você deve verificar /var/log/boot.log para ver se há um erro relatado. Provavelmente não é rc.local não está funcionando, mas o script não funciona quando o rc.local é carregado.
Pelo menos é o que eu encontrei.
eu adicionei
chown ****(my username) /sys/kernel/debug/vgaswitcheroo/switch
echo OFF > /sys/kernel/debug/vgaswitcheroo/switch
para rc.local (e defina rc.local para executável). E então eu peguei
chown: cannot access '/sys/kernel/debug/vgaswitcheroo/switch': No such file or directory
no boot.log, que parecia indicar que o script foi executado antes de o mecanismo de comutação ser configurado.