Character Role Analysis
Portia might be considered a protagonist insofar as she has a hold on the movement of the play. She's the very reason Bassanio sets out in the first place, which gets Antonio wrapped up in the Shylock plot. Portia definitely has the characteristics of a protagonist: she's willful, clever, stubborn, and knows how to turn events to her favor.
There are arguments to be made, though, about why Portia should not be considered the protagonist. Her whole existence in the play is predicated upon the fact that she can't choose her own husband. She has limitations that she can't do anything about: no matter how much she manipulates what's happening, she's fundamentally acting from a restricted place. This weakens her hold over all the play's events. More important, Portia is not at the center of all the action. Much of the play is about Antonio's debt with Shylock and his relationship with Bassanio. Portia ends up being incidental to those relationships.
If you wanted to argue about this, we could be here all day. Instead, we'll point out that while Portia doesn't have a hold over all the play's actions, she does have much to do with its most crucial actions. She defies her gender limitations by dressing up as a man, she settles the question of Antonio's debt, and she calmly undoes Shylock while others are standing around ranting and raving about his lack of mercy. Portia's ring trick at the end of the play asserts that, though she's a wife (and implicitly subordinate), she's actually in control of her husband.
Shylock is as likely a candidate as Portia to fill the role of the play's protagonist. He drives the other characters to act the way they do. He enables the subplot of Bassanio's courting of Portia. And the buildup of the story is entirely focused on what will be done with Antonio's debt to him. The romance plotline is interrupted when Portia has to cut short the wedding festivities and go pretend to be a male lawyer – all because of Shylock.
Of course, there are also many arguments about why Shylock is not the protagonist. Unlike most protagonists, Shylock isn't part of the play's resolution. He is simply removed at the end, and the play wraps up as though he never existed. Further, Shylock is entirely limited by the society he lives in. Even in his lending of money to Bassanio, he's motivated by the potential for vengeance against Antonio. He's not an actor but a reactor, and that's no way for a protagonist to behave.
Still, without Shylock, there'd be no story. Other characters are multifaceted because of their complex relationships to each other, but Shylock makes some of the most rousing and poignant points in the play, and they seem to come from a place of deep self-reflection.
Some might argue that Bassanio is the play's protagonist because he's embroiled at the center of the plot with Shylock, he tries to woo Portia for a few scenes of the play, and he's dearly loved by Antonio. Again, it seems Bassanio is present in the play solely to be involved with other characters and complicate their (already) rich situations. He's like a touchstone: he can highlight what's valuable even if he himself isn't. To argue that Bassanio defines and moves the action of the play is like arguing Marie Antoinette was the protagonist of the French Revolution. Sometimes, just showing up isn't enough, especially not when you're on stage with such heavy hitters.
A similar argument might be made for Antonio, as he seems to constantly insert himself into the center of the play's drama and is very likely the play's title character. Still, Antonio spends half the play signing away his life to Shylock and the other half sighing away his life over Bassanio. He is incidental insofar as Shylock acts against him (his response is mere reaction), and Portia has to rescue him. All he has to offer is gratitude, although, to be fair, he's good at that.