In the few cases a fortification is attacked (Helm's Deep, Minas Tirith), the attackers don't besiege them, they start an assault as soon as they arrive.
In real life, assaults were only done when, after a long siege, the defenders were weakened enough (or when an overwhelming force was really in a hurry, and a very small fort was blocking their way), and even in those cases the casualties on the attacker's side could be an order of magnitude higher.
As neither Sauron nor Saruman seem to have any supply problems, why don't they besiege the fortresses of their enemies properly? Setting up a siege camp, complete with a palisade to guard against a cavalry charge, then slowly and meticulously grinding down the defenses (or just starving them out) seems to have had a high probability of success.
Was Sauron really that overconfident and impatient? Is there an in-universe justification for this? Sauron was gathering his strength for thousands of years, so a few months more shouldn't be such a big problem. He also doesn't seem like someone too stupid to think about how a proper siege has to be organized.