Unlike
Laertes,
Hamlet does not rush in to avenge his father's death without thinking it through carefully. He doesn't want to kill an innocent man at the behest of a ghost who may well have been sent by Satan to tempt him to become a murderer.
Hamlet shows his moral fiber in testing the truth of
the ghost's claims. In moving cautiously, he also doesn't allow himself to be manipulated.
Laertes, however, is simply bent on vengeance at any cost. He doesn't stop to think about extenuating circumstances or even if the rumors he has heard about Hamlet killing his father are true. (As it turns out, they are.) He simply wants blood. Laertes also allows himself to be manipulated by
Claudius. Hamlet shows his moral superiority both through waiting to kill his uncle until he knows he is guilty and through his strength of character in not allowing himself to be another's pawn.
Fortinbras is a harder case. Hamlet is at first critical of Fortinbras—or seems to be—when he learns how many men his rival is putting at risk of death and how much money he is spending to avenge his father's death. Hamlet says this is a result of Fortinbras having too much money and having experienced too much peace: he doesn't realize the wastefulness of war, its huge cost in terms of resources and lives. As Hamlet says,
Two thousand souls and twenty thousand ducats
Will not debate the question of this straw.
This is th' impostume of much wealth and peace.
Yet, while Hamlet is critical of Fortinbras's willingness to shed so much blood over a relatively worthless piece of ground (Denmark), he also admires Fortinbras's determination and audacity. Hamlet wishes he himself would stop procrastinating, calling his hesitation "three parts coward[ice]". He determines to be like Fortinbras and focus his thoughts on blood and violence.
Yet while Hamlet makes this resolution, it is out of character for him. Additionally, his emphasis, a second time, on the sheer waste of what Fortinbras is doing might give an audience pause. Is Fortinbras truly admirable to be willing to sacrifice so many men for nothing? Or is what Fortinbras is doing heinous?
For all Hamlet's brave bluster in act IV, scene iv, the Hamlet we know is thoughtful and humane enough (except to courtiers) to not want to be awash in the blood of many innocent people. For example, though popular and arguably the rightful heir to Demark's throne, Hamlet has never mentioned raising an army to overthrow Claudius. His distaste for violence and vengeance at all costs arguably makes Hamlet morally superior to Fortinbras.