Em vez de lhe dizer como fazê-lo, direi que você não deveria estar fazendo isso.
TL; DR - Não altere seu script. Em vez disso, configure seu gerenciador de arquivos ou descubra por que seus usuários o executam acidentalmente.
EDIT: Você parece tratar seu script como algo especial, como se as configurações gerais não fossem boas o suficiente e seu script precise de confirmação especial do usuário. Clicar duas vezes nele é a confirmação. Se você achar que seus usuários o executam acidentalmente, precisará descobrir por que eles fazem isso e resolver isso. Seu problema real não é como exigir confirmação, mas como impedir que seus usuários a executem acidentalmente.
Pela maneira como expõe seu problema, parece que você espera que seu programa (script) seja executado navegando até onde está o arquivo e, em seguida, clicando nele no gerenciador de arquivos. Pense em todos os outros programas em seu sistema. Quantos você começa assim? Você navega para /usr/local/binquando inicia o Firefox? Claro que não. Você clica no menu de aplicativos. (o gnome tweak é um script python, talvez seja um exemplo melhor)
Espero que você não considere clicar nele no menu de aplicativos como um acidente. Portanto, seu problema passa a ser como fazer com que seu script apareça lá em vez de usar o gerenciador de arquivos. Para fazer isso, faça o seguinte:
coloque seu script longe dos outros arquivos nos quais o usuário possa clicar acidentalmente (o local típico é /usr/local/bin/para uma instalação em todo o sistema ou ~/.local/bin/para uma instalação do usuário)
crie um arquivo de entrada da área de trabalho (leia as especificações padrão ). Aqui está um caso mínimo:
[Desktop Entry]
Name=Your script name
Exec=path/for/your/script
Icon=path/for/your/icon/can/be/svg
Terminal=false
Type=Application
e empurrá-lo em /usr/local/share/applications/your-script.xmlou ~/.local/share/your-script.xml.
Finalmente corra update-desktop-database.
Como você está clicando duas vezes no script, é tarefa do seu gerenciador de arquivos confirmar isso. Não é tarefa do script confirmar se deve ser executado. Leve isso ao extremo. Você pode imaginar como seria ridículo que cada vez que você ligasse para algum programa, você tivesse que confirmá-lo?
O único momento em que um programa deve pedir confirmação é quando está prestes a fazer algo possivelmente perigoso e irreversível. Por exemplo, substituindo um arquivo ou ignorando a lixeira. E observe que mesmo esses exemplos são sobre como fazer um programa fazer algo específico. Não se trata de iniciar esses programas. Se um único objetivo do programa é fazer uma coisa tão perigosa, também não deve pedir confirmação.
De fato, o Nautilus (gerenciador de arquivos Gnome) já solicita por padrão que você confirme se deseja executar um script (ou apenas abri-lo em um editor de texto).

E, é claro, esse comportamento é configurável, dando ao usuário a possibilidade de desativá-lo (observe a entrada em Arquivos de texto executáveis ).

Portanto, não adicione uma caixa de diálogo de confirmação irritante ao seu script. Configure seu gerenciador de arquivos corretamente. E deixe seus usuários fazerem o mesmo.
if zenity...ouzenity... || exit