Das Problem ist, dass TikZ das Zeichen `&` _aktiv_ macht und als `\pgfmatrixnextcell`. `\pgfmatrixnextcell` definiert. Es gibt zwei mögliche Lösungen: die Option `fragile` zur `frame` Umgebung hinzufügen:
\begin{frame}[fragile]
\begin{center}
Koassoziativitätsgesetz der Komultiplikation
\bigskip
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=3em,column sep=3em,]
{
A & A\mal A \\
A\mal A & A\mal A \mal A \\
};
\path[-stealth]
(m-1-1) edge node [left] {$\scriptstyle\varphi$} (m-2-1)
edge node [above] {$\scriptstyle\varphi$} (m-1-2)
(m-2-1.east|-m-2-2) edge node [above]
{$\scriptstyle\varphi\otimes\id$} (m-2-2)
(m-1-2) edge node [right]
{$\scriptstyle\id\otimes\varphi$} (m-2-2);
\end{tikzpicture}
\end{center}
\end{frame}
Zweite - und meiner Meinung nach vorzuziehende - Lösung: TikZ sagen, dass die Matrix ein anderes Makro verwenden soll mit der Option `/tikz/ampersand replacement=<macro name>`, zum Beispiel `\&`:
\begin{frame}
\begin{center}
Koassoziativitätsgesetz der Komultiplikation
\bigskip
\begin{tikzpicture}
\matrix (m) [matrix of math nodes,row sep=3em,column sep=3em,ampersand replacement=\&]
{
A \& A\mal A \\
A\mal A \& A\mal A \mal A \\
};
\path[-stealth]
(m-1-1) edge node [left] {$\scriptstyle\varphi$} (m-2-1)
edge node [above] {$\scriptstyle\varphi$} (m-1-2)
(m-2-1.east|-m-2-2) edge node [above]
{$\scriptstyle\varphi\otimes\id$} (m-2-2)
(m-1-2) edge node [right]
{$\scriptstyle\id\otimes\varphi$} (m-2-2);
\end{tikzpicture}
\end{center}
\end{frame}