Como você conhece os delimitadores, basta dividi-los e remontá-los
sed -Ei 's/(.*gene_name=)([^;]*)(;.*)/\t/g' gene
que se divide em
(.*gene_name=)
toda a sua string até a tag gen_name vai para a variável 1
([^;]*)
todos os caracteres contínuos até o; vá para a variável 2
(;.*)
o resto da sua string vai para a variável 3
\t
recomponha sua string com uma guia e o gene anexado
EDITAR
ou como notas @Weijun
sed -Ei 's/.*gene_name=([^;]*).*/sed -Ei 's/(.*gene_name=)([^;]*)(;.*)/\t/g' gene
\t/g' gene
\t
Outro EDIT
Code de golfe
(.*gene_name=)