As I wrote in the comments, LaTeX macros usually don't know a lot about the text that surrounds them. With a few sly tricks it is possible to catch a glimpse of what comes after the macro (the naive solution of absorbing another argument at least gives us the next token), but the usual tricks won't work for entire words or phrases. It is even harder to find out what happened before the macro. There are limited methods to find out about punctuation before a macro, but usually not for more.
So your best bet is an approach from outside the \cite macro, essentially something like a full search and replace job on the document text.
Naturally you can do that in your favourite editor. The advantage there is that you can double check each occurrence manually and assess the usefulness of a replacement.
If you insist on a solution that leaves your actual .tex input unchanged and only happens upon the TeX run I guess your best bets are LuaTeX and expl3. expl3's RegExp is really impressive, but I'm not sure whether it was intended to essentially canvass the entire document body.
A LuaLaTeX solution could look like this answer by Mico's answer to Macro: Replace all occurrences of a word. I was trying to be careful and execute the filter only at the beginning of the document to avoid replacing anything in packages.
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage{luacode}
\begin{luacode}
function replace_cite (line)
return string.gsub(line, "%f[%l_]in~\\cite" , "in~\\parencite")
end
\end{luacode}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\AtBeginDocument{%
\luadirect{
luatexbase.add_to_callback( "process_input_buffer", replace_cite, "replace_cite")}}
\begin{document}
Lorem~\cite{sigfridsson}
this is replaced: in~\cite{sigfridsson}
but not: bin~\cite{sigfridsson}
in~\cite{sigfridsson}
\printbibliography
\end{document}

I personally am not too fond of this kind of automation. It should be a conscious decision by the document author what kind of general citation format she wants (with brackets, without brackets, with different brackets) if there are several possible alternatives. Especially if the choice is context dependent, depends on the structure of the surrounding text or carries a certain connotation a human should make the decisions. But maybe I'm just trying to rationalise a shortcoming of LaTeX's macro system.
\citecommands (and even more generally all LaTeX macros) don't really know the text around them. It is possible to let them see the text that comes after them to some extent (\citecan for example deal with following punctuation), but the usual methods won't work for entire words or phrases. A macro has absolutely no way of knowing what text came before it (again, with spacefactors a limited detection of punctuation might be possible, but not something like detecting an "in"). So you would have to resort to solutions that work from outside\cite. ... – moewe Nov 20 '18 at 15:30\citeexcept those inin~\citeinto\parencite. It might also be possible to cook something up withexpl3, but you would somehow have to process the entire document body with the RegExp, not sure if and how that is supported (it sounds as though that could cause all kinds of issues, but LaTeX3 can do a lot of things). I would say: Don't bother and just use the correct macros in the first place, but you might think this endeavour is worth while. – moewe Nov 20 '18 at 15:34