Com o comando que você está executando, a sintaxe $(...)
é avaliada pelo seu shell antes de chamar gksudo
. O que você quer é que seja avaliado por um shell rodando como root. Talvez tente algo assim:
gksudo -u root "sh -c 'gedit \$(zenity --file-selection)'"