If you use
\newcommand instead of
\def, you'll clearly see the source of the problem:
! LaTeX Error: Command \t already defined.
Or name \end... illegal, see p.192 of the manual.
\t command is defined in the LaTeX Internal Character Representation for the “tie accent” and
hyperref assumes this is the meaning of
\t. Since it has to do several patches for its working, you end up with
\t being essentially redefined to its original meaning, which can be seen if you add
->\PD1-cmd \t \PD1\t .
Without your redefinition and without
hyperref, you'd get
->\OML-cmd \t \OML\t .
which is essentially the same (the encoding name may change when
\show is used for technical reasons which are beyond the scope of this answer).
Moral: don't use
\def if you don't know precisely what you're doing. And never redefine a command with
\renewcommand if you don't know precisely about it.