I think it works like this when it comes to offline and online matches.
If you suck at bots, that's probably because you're relying on fast movement to shake the opponents aim. With bots, it doesn't matter all that much. Especially when the bot or bots have hitscans.
Also, you may be trying to surprise them only to find out that bots are never surprised.
If you're good at bots then that simply means you know how to exploit the bots constant weaknesses. Or maybe you're just that good.
Two words: bot pathing.
Oh & spawn points, so Four words: bot pathing & spawn points.
Wait, there's weapon, ammo & shield control so yeah, Eight words: bot pathing, spawn points, weapon, ammo & shield control.
Damn, I forgot aim, prediction & map knowledge.
Ok, so Twelve words: bot pathing, spawn points, weapon, ammo & shield control, aim, prediction & map knowledge.
Seriously though, bots play better on some maps than others due to the pathing or lack thereof.
They don't play tactically they follow a routine.
Obviously the more bots you add the more chaotic things become but they're still wholly predictable 99% of the time & even in numbers don't present much of a challenge, [depending on the map] until at least Adept.
One way playing bots does your online game harm is that no two people play the same, whereas all the bots in your offline game do.
That & people learn, or do things a bot would never do whether because they're good or awful or sneezed or they have connection issues, etc.