With the MWE below, we see that the main differences are following:
- The operator's font changes: all commands write an upright operator, but
\mathop write it slanted.
- In display mode both
\DeclareMathOperator* and \mathop set sub- and superscripts right below and above the operator, while the other operators set them shifted to the right.
- The operator stands right on the baseline for all commands but for
\mathop there it sinks below it (both in inline and display mode)
See picture and code below:

\documentclass{article}
\usepackage{amsmath}
%All operators are declared as commands
\DeclareMathOperator{\Ti}{T}
\newcommand{\Tii}{\operatorname{T}}
\DeclareMathOperator*{\Tiii}{T}
\newcommand{\Tiv}{\mathop{T}}
\begin{document}
%DeclareMathOperator
\verb|\DeclareMathOperator|\\
Inline:
\(x \Ti^a_b y\)
\\
Display:
\[x \Ti^a_b y\]
%Operatorname
\verb|\operatorname|\\
Inline:
\(x \Tii^a_b y\)
\\
Display:
\[x \Tii^a_b y\]
%DeclareMathOperator*
\verb|\DeclareMathOperator*|\\
Inline:
\(x \Tiii^a_b y\)
\\
Display:
\[x \Tiii^a_b y\]
%Mathop
\verb|\mathop|\\
Inline:
\(x \Tiv^a_b y\)
\\
Display:
\[x \Tiv^a_b y\]
\end{document}