Hm... Have you ever played in ARAM? ARAM is mode where you have only one line with 5vs5 players on it. Often it's much shorter than regular Dota, LOL matches but give same "experience points" to buy/open some in game items.
You can encounter farming bots there, they just do one thing : go to enemy and die. It isn't fun to play with them. Once there were 3 bots in one match. Servers were infested with them for weeks it was impossible to play ARAM back then.
Riot is infamous for this even among players. A lot of their dev decisions in the past were blatantly "fastest possible answer", including things like building solid terrain out of immortal, un-targetable units to save time.
That said, the criticism feels sort of dated, like they got a bad reputation and it stuck after they caught up to the normal amount of badness for a video game. There are kludges, but they don't show the way they used to.
I further think that Riot often doesn't get credit for the things they do right. I remember back in the day they were rolling out patches weekly, with a 12 hour maintenance window a la WoW on Tuesdays. That fell to half that time, then a third, and has at this point been gone for years. Cheating is a major problem in any current multiplayer game (PUBG has been getting hit hard recently I hear), but it's never been big enough in League that I felt the effects.
Riot has managed to build the biggest gaming phenomena outside of Minecraft in the last decade, and I'd expect corners to be cut in doing that. Clean code doesn't win a startup race, and games are a cut-throat business (see: Epic's Fortnite rolling out a battle Royale mode in a span of months following the success of PUBG). It's a good thing, imo, that Riot can afford the time and energy to start cleaning their code, and are willing to share some parts of that process with the wider world.