Você precisa dar a ele como um comando para bash como () é interpretado por bash para executar os comandos dentro de parênteses em um subshell:
sudo bash -c '(cd /some/dir; ./runscript.sh)'
Então, no bash, isso funciona bem:
(cd /some/dir; ./runscript.sh)
assumindo que /some/dir/runscript.sh existe.
mas
sudo (cd /some/dir; ./runscript.sh)
falha com o erro:
-bash: syntax error near unexpected token 'cd'
por quê?
Em um nível inferior, sudo não está executando o (s) comando (s) no bash (ou outro shell), mas na verdade está iniciando um novo processo baseado no "comando" passado e iniciando esse processo com o restante argumentos que você passa.
Como @heemayl apontou, você pode usar a sintaxe sudo bash -c '(cd /some/dir; ./runscript.sh)' . Isso ocorre porque bash é um executável legítimo do sistema. sudo é incapaz de criar um processo chamado (cd como ( faz parte da sintaxe bash e normalmente não é um nome executável válido.