Weil da explizite Klammern stehen. `\foreach` expandiert die Liste nur, wenn man `\forach in \list` verwendet, wobei `\def\list{1,2,3}`. In deinem Fall also `\edef\list{\EigeneUmgebungen, \StandardUmgebungen}`.\StandardUmgebungen}`.
**Ganzes Bsp.:**
\documentclass{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{xpatch}
% AMS-Mathepakete und eigene theorem-Umgebungen
\usepackage{amsmath, amssymb, amsfonts}
\newtheorem{defi}{Definition}[chapter]
\newtheorem{satz}[defi]{Satz}
\newtheorem{bsp}[defi]{Beispiel}
\usepackage{pgffor} % Schleifen
\def\list{}
\def\EigeneUmgebungen{defi,satz,bsp}
\def\StandardUmgebungen{figure,table,equation}
\edef\list{\EigeneUmgebungen, \StandardUmgebungen}
\foreach \Umgebung in \list {%%
\BeforeBeginEnvironment{\Umgebung}{Eine Umgebung:}
}%%
\begin{document}
\begin{defi}[Eine Definition]
$x:=y$
\end{defi}
\begin{satz}[Ein Satz]
$a^2 + b^2 = c^2$
\end{satz}
\begin{table}[h]
\begin{tabular}{c|c|c}
A & B & C \\ \hline
X & Y & Z \\
\end{tabular}
\end{table}
\end{document}