Here's a LuaLaTeX-based implementation of the preprocessor-based approach I outlined in the comments above. It replaces instances of \cref with \Cref (and of \crefrange with \Crefrange) if they occur either at the very start of a line of input or are preceded by a sentence-ending punctuation mark (., ?, or !) followed by one of more whitespaces. The main work is performed by the cref2Cref Lua function, which gets assigned to the process_input_buffer callback, thus acting as a preprocessor before TeX starts its normal work.
The main, crucial assumption about the input is that there are no line-breaks inside sentences. If this assumption isn't satisfied, the approach is not guaranteed to work. A second, hopefully trivially-true, assumption is that only macros of the cleveref package start with the string \cref. If, for whatever reason, your code defines macros named \crefx or \crefzzz, be prepared for some unpleasant surprises. The approach also ignores the possibility that non-sentence-ending periods are followed immediately by \cref. Thus, a (highly questionable!) sentence fragment such as "Mr. and Mrs. \cref{fig:a} are pleased to announce" will trip up the algorithm. Do let me know if your document contains such passages...
The code used to generate the following screenshot loads the hyperref package and loads the cleveref package with the option nameinlink in order to make it easy for the eye to detect cross-references. Observe that two of the four instances of \cref were replaced with \Cref "on the fly".

Finally, note that cleveref itself does no extra work here: It only ever gets to see, and process, instances of \cref and \Cref. cleveref has no way of knowing which instances of \Cref and \Crefrange were provided by the author and which ones were created on-the-fly by the Lua function cref2Cref.
% !TEX TS-program = lualatex
\documentclass{article}
\usepackage{amsmath} % for 'gather' env.
\usepackage[colorlinks]{hyperref} % optional
\usepackage[nameinlink,noabbrev]{cleveref}
\usepackage{luacode}
\begin{luacode}
function cref2Cref ( s )
s = s:gsub ( "^\\cref", "\\Cref" )
s = s:gsub ( "([%.%!%?])%s*\\cref" , "%1 \\Cref" )
return s
end
\end{luacode}
%% Assign the Lua function to the 'process_input_buffer' callback:
\AtBeginDocument{\directlua{luatexbase.add_to_callback(
"process_input_buffer" , cref2Cref , "cref2Cref" )}}
\begin{document}
%% Set up a few equations and figures.
\begin{gather}
1+1=2 \label{eq:1} \\
2+2=4 \label{eq:2} \\
3+3=6 \label{eq:3}
\end{gather}
\begin{figure}[h!]
\caption{AAA} \label{fig:a} \smallskip
\caption{BBB} \label{fig:b} \smallskip
\caption{CCC} \label{fig:c}
\end{figure}
% Now generate a few cross-references.
Is this a cross-reference to \cref{eq:1}? \cref{eq:2,eq:3} show that\dots
\crefrange{fig:a}{fig:c} illustrate\dots\ As \crefrange{fig:b}{fig:c} demonstrate, \dots
\end{document}
\Crefis executed, there's no simple way to check whether the character before it was a period or other punctuation mark. You could make punctuation marks macros itself that check if the following token is\Cref, but this is likely to cause trouble in other places and wouldn't be very reliable. – siracusa Dec 02 '18 at 20:16\crefis encountered in the input stream, check if it occurs at the very start of a line or is preceded by a sentence-ending punctuation mark followed by whitespace. If one of these conditions is true, determine that\crefoccurs at the start of a sentence. But this would impose a horrible amount of computing overhead, grossly slowing compilation. – Mico Dec 02 '18 at 20:35\Crefwhen I wrote\cref? no, thanks ! For me is not a problem of computing overhead, but that I hate that the computer choose by me what to do after a period, like in " E. coli ", supposedly to gain time while typing, but in practice this kind of "AI" is useful only to waste your time while correcting the wrong uppercases and, if you are not careful, left them in the final document! Even if that AI could detect the end of a paragraph, or the end of a sentence (how?) I doubt that it could be a real benefit for the writer. – Fran Dec 02 '18 at 21:38\crefthat satisfy one of the criteria I mentioned would be replaced with\Cref"on the fly", andcleverefwould not have to perform any extra work (since it doesn't know which instances of\Crefwere there to begin with and which ones are on-the-fly replacements for\cref. I seriously doubt the usefulness of such an exercise, though. How difficult, really, is it to develop a habit of writing\Crefat the start of a sentence? – Mico Dec 02 '18 at 21:49