Using the concepts you pointed to in your question at Subfigure labelling for a single figure, I think this is what you intended for automating the \cref
change.
\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{mwe}
\usepackage{graphicx}
\newcommand{\crefSubFigRef}[2]{\crefformat{figure}{fig.~##2##1{(#2)}##3}%
\cref{#1}\crefformat{figure}{fig.~##2##1##3}}
\begin{document}
\begin{figure}
\centering
\includegraphics[width=\textwidth]{example-image-a}
\caption{Main caption here}
\label{fig:main}
\end{figure}
CREF CHANGED BY HAND:
The default format of \texttt{cref} looks like this \cref{fig:main}.
The format of the figure reference is now changed on the fly to be%
\crefformat{figure}{fig.~#2#1{(a)}#3} % change the format to include (a)
\cref{fig:main} or%
\crefformat{figure}{fig.~#2#1{(b)}#3} % change the format to include (b)
\cref{fig:main}
\crefformat{figure}{fig.~#2#1#3}% restore the default format
instead of \cref{fig:main}.
AUTO-CHANGED:
The default format of \texttt{cref} looks like this \cref{fig:main}.
The format of the figure reference is now changed on the fly to be
\crefSubFigRef{fig:main}{a}
or
\crefSubFigRef{fig:main}{b}
instead of \cref{fig:main}.
\end{document}

And I see that one nice thing about this approach is that one can build their subfigures using any hyperref NON-compliant method, and still hyperlink to the figure this way, as shown below:
\documentclass{article}
\usepackage{hyperref}
\usepackage{cleveref}
\usepackage{mwe}
\usepackage{graphicx}
\usepackage{stackengine}
\newcommand{\crefSubFigRef}[2]{\crefformat{figure}{fig.~##2##1{(#2)}##3}%
\cref{#1}\crefformat{figure}{fig.~##2##1##3}}
\begin{document}
\begin{figure}[ht]
\centering
\stackunder{\includegraphics[width=2in]{example-image-a}}{(a)}~~
\stackunder{\includegraphics[width=2in]{example-image-a}}{(b)}
\caption{Main caption here for (a) first subfigure and (b) second
subfigure\label{fig:main}}
\end{figure}
\clearpage
The default format of \texttt{cref} looks like this \cref{fig:main}.
The format of the figure reference is now changed on the fly to be
\crefSubFigRef{fig:main}{a}
or
\crefSubFigRef{fig:main}{b}
instead of \cref{fig:main}.
\end{document}
