My generals seem to be getting the "doubtful courage" trait if one of the units in their army is defeated in battle and runs away. At first I noticed it happening when I pressed the "withdraw" button on a unit of leves I had as reinforcements, but I didn't want them in the battle so I withdrew them and afterwards my consul got doubtful courage.

So I stopped using the withdraw button. Now, however, I'm noticing my generals get the trait if one of their units routs in battle. For example just this morning in a Makedonia game, I combined everything I had in to one big army under Antigonos and sent him against Pyrrhus and his army. In the whole battle, my only unit that routed was a unit of Xystophoroi. I sent them against Pyrrhus' archers soon after melee started, but I was so busy admiring the models on my phalanx units as they fought that I forgot about the Xystophoroi and they got trampled by elephants and routed off the field.

After this battle, Antigonos has "doubtful courage". Antigonos himself spent most of the battle charging in to the flanks and rear of Pyrrhos' light infantry, hacking and slashing, and he barely lost a member of his bodyguard. I think he even killed Pyrrhus personally! So he is most definitely not a coward.