The fact that we know, basically perfectly, how good all of our players are in the sim means that run scoring is likely to be a little bit inflated over RL. Real-world managers tend to be pretty poor at optimizing lineups.
That's a great point. We choose our players, and set our lineups, based on what's already happened. We're not going to be surprised by a star player suddenly getting old, or a no-name showing up out of nowhere and playing great. In progs, the star player gets cut if he's done contributing, and the no-name gets drafted early.
Another reason batters outperform pitchers in progs is there's no way really to misuse a full time batter (say, 650+ PA). Whereas a pitcher, no matter how many innings he has in real life, can be sent to the mound tired, or can have a pitch count that's too high for his RL IP/G. And of course it's a vicious circle -- if some owner's misusing his pitchers, some other owner's batters are padding their stats.