Using \textcolor
seems to make it work.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[
a4paper,
margin=15mm,
bindingoffset=2mm,
heightrounded,
]{geometry}
\usepackage{amsmath}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
\usepackage{xcolor}
\begin{document}
\schemestart
\chemfig{CH_3CH_2-[:-60,,3]C(-[:-120]H)=C(-[:-60]H)-[:60]H}
\arrow(.-1--){->[\chemfig{H_2O}][\chemfig{H^+}]}[,1.5]
\chemfig{CH_3CH_2-[:-0]C(-[:90]{\textcolor{red}{OH}})(-[:-90]H)-C(-[:-90]H)(-[:90]H)(-[:0]H)}
\schemestop
\end{document}

Apparently, using {\color{red}{OH}}
also makes it work, just by bracing the "OH". Alternately, so does {{\color{red}OH}}
, with the double brace.
However, as noted by the OP, it would be desirable to get just the oxygen linked to the bond, and so (after consulting the manual against my better judgment :^) I came up with this, in which I use a |
to separate the atom specification, and apply color to each, respectively, as in {\color{red}{O}|\color{red}{H}}
.
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage[
a4paper,
margin=15mm,
bindingoffset=2mm,
heightrounded,
]{geometry}
\usepackage{amsmath}
\usepackage{chemfig}
\usepackage[version=3]{mhchem}
\usepackage{xcolor}
\begin{document}
\schemestart
\chemfig{CH_3CH_2-[:-60,,3]C(-[:-120]H)=C(-[:-60]H)-[:60]H}
\arrow(.-1--){->[\chemfig{H_2O}][\chemfig{H^+}]}[,1.5]
\chemfig{CH_3CH_2-[:-0]C(-[:90]{\color{red}{O}|\color{red}{H}})(-[:-90]H)-C(-[:-90]H)(-[:90]H)(-[:0]H)}
\schemestop
\end{document}

mhchem
was released about two years ago so\usepackage[version=4]{mhchem}
seems more appropriate (unless you have an outdated TeX distribution…)