Obrigado pelos comentários que me ajudaram a solucionar o problema real.
Como a steeldriver mencionou shopt é um bash embutido e como upstart usa /bin/sh por padrão e ele é vinculado a dash , portanto shopt não estava funcionando.
Além disso, o script em que shopt funcionou era um script bash (espero que responda à pergunta de bodho.zazen).
Depois de algumas pesquisas, o que eu fiz foi colocar meu comando shopt como este na seção de script, e isso funcionou -
script
/bin/bash <<'EOF'
<my-code>
shopt -s nullglob
<my-code>
EOF
end script
Obrigado a todos por me ajudarem! :)