This has become increasingly frustrating for me, and I now have to overuse quoting to get the things I want.
Why would I include a word if I wanted results that didn't include it. I could understand that on later pages to include more results, but regularly even the very first results don't include one of the key words in my search.
It feels like Google's "AI" has reached the point of acting like a (rather stupid) human, complete with all the downsides. Many others I know are increasingly frustrated with this behaviour too, and one produced a very apt analogy: it's like walking into a pet store and asking for a specific type of dog, but being told by the sales assistant "would you like to see these instead" and pointing you to all the cats they have.
It's even worse if they helpfully replace the word with a "synonym" (which isn't!) instead of removing it.
Usually the replacement is significantly broader than the original. For example, "Debian" might get replaced with "Linux", giving lots of irrelevant results. Sometimes it will even replace e.g. "FreeBSD" with "Linux", when the whole point of having it in the query was to exclude the irrelevant Linux results.
This drives me insane. In the early days you only got exact matches, now in an effort to sell more ads, or be more “helpful” you get random crap. I would pay for a search that only returned results with the words you entered.
I have found the opposite. For obscure programming questions (_ESPECIALLY_ error codes), google always finds me the right stack exchange thread on the front page. DDG usually gives me crap (but I could see where that crap comes from).
I have noticed that Google's ads have gotten harder and harder to distinguish from the valid results. I use DDG until I have an obscure question, then I have to go back to Google.