ignoring the fact he did the same thing Zoro did in the same chapter
this scene is misinterpreted by so many fans.
Sanji tried to butt in. Zoro was already negotiating for the lives of the crew, not just Luffys.
Sanji had no right to interfere here.
when Zoro knocked Sanji out it also send a clear message. this is not the time for silly games or bickering. this is serious.
the moment things get serious Zoro will not tolerate Sanjis antics anymore and not play along.
Zoro is not putting Luffys dream over his own here either.
his words were "if I can't protect my captain then my ambition means nothing".
so, if Zoro is too weak to protect Luffy then he will not be able to reach his ultimate goal.
in other words, if he can not protect his friend then he is not fit to become WSS.
CoC is not about willingness to sacrifice yourself.
its about ambition.
Zoro and Luffy have ambition while Sanji does not.