Section 9 Watch Out! of the embrac documentation explains that embrac only applies to \emph{...}, but not to {\em ...} and {\itshape ...}. Since amsthm's lemma uses \itshape to typeset its body in italics, embrac can't be used here. It would be a non-trivial (impossible?) exercise to convert embrac's behaviour for the macro \emph to the switch \itshape, so you will have to find a different work-around. The easiest is to use \upshape for the label. Since you use enumitem you can pack that up into a global definition.
\documentclass{article}
\usepackage{amsmath, amsthm, enumitem}
\usepackage{embrac}
\newtheorem{lemma}{Lemma}
\setlist[enumerate]{label=\upshape(\roman*)}
\begin{document}
\begin{lemma}
This holds:
\begin{enumerate}
\item $a^2+b^2=c^2$.
\end{enumerate}
\end{lemma}
\end{document}

or define a new list type thmenum
\newlist{thmenum}{enumerate}{1}
\setlist[thmenum]{label=\upshape(\roman*)}
and then use it like this
\begin{lemma}
This holds:
\begin{thmenum}
\item $a^2+b^2=c^2$.
\end{thmenum}
\end{lemma}
if you want to preserve the original enumerate. The result is the same.
As clemens mentions in the comment, v0.8 of embrac introduces the macro \embparen which can be used as follows
\setlist[enumerate]{label=\embparen{\roman*}}
embracdoes not redefine\emit only changes\emph, so it does not apply in yourlemmaat all. TryThis holds: (i)for example to see that the brackets are unaffected. I believe it would be non-trivial to get\emto beembrac-ified, hence I suggest you go with[label=\upshape(\roman*)], you could possibly wrap that up in a\setlistin the preamble to only type this once. – moewe Nov 24 '18 at 16:47\emwas used in alemmaenvironment. That workaround should solve it. – SvanN Nov 24 '18 at 17:41\upshapesuggestion by @moewe is really the best approach. – barbara beeton Oct 02 '19 at 15:00