In Harry Potter and the Order of the Phoenix, Harry chased Bellatrix Lestrange after she murdered Sirius Black. He used the Cruciatus curse on her but it was not really effective.
As Bellatrix said:
"You need to mean them, Potter! You need to really want to cause pain... to enjoy it... righteous anger won't hurt me for long... I'll show you how it is done, shall I? I'll give you a lesson—"
Later when Amycus Carrow spat on Minerva McGonagall, Harry used the curse splendidly.
As Amycus spun around, Harry shouted, "Crucio!"
The Death Eater was lifted off his feet. He writhed through the air like a drowning man, thrashing and howling in pain, and then, with a crunch and a shattering of glass, he smashed into the front of a bookcase and crumpled, insensible, to the floor. "I see what Bellatrix meant," said Harry, the blood thundering through his brain, "you need to really mean it."
Harry Potter Fandom attributes this to a lack of sadistic feeling in Harry.
But still it makes no sense. Harry should have had more desire to cause pain after the murder of his godfather, but he was only able to knock Bellatrix off her feet. The Fandom page however also suggests that Bellatrix was probably less affected by the curse due to her lack of conscience and being a sadistic person herself but somehow I don't feel it's quite right.
The only rational explanation that I have been able to give myself is that the war-time environment changed Harry Potter from the young boy he was in HPtOotP to a grizzled veteran by the time of the Battle of Hogwarts and somehow his sense of emotions was also affected by it.
Could it be that Harry liked McGonagall better than Sirius and thus was able to channel his anger better than he did in the Ministry skirmish? Is there any better explanation?