**Why does Zoro hate Sanji?**Fans tend to give them the benefit of the doubt, but I think there's actually a reason in the manga why the two don't get along. (Click on the links for relevant content.)
Go back to Sanji's introduction on the Baratie. Zoro actually doesn't give two shits about Sanji; he's fine with him letting him be. However, something interesting happens once the threat of Mihawk and the Grand Line rear their head: Sanji shits all over Zoro's dream.
This is the earliest instance of friction I can find and, to be honest, it makes sense. Sanji is essentially pulling a Bellamy here. Despite his dreams of wanting to find the All Blue and being Invisible, Sanji has never dedicated himself wholeheartedly to a task. He lacks true ambition. Zoro finds this weak.
Moreover, Sanji continues to be a liability to the Straw Hats in the New World. He nearly dies against Vergo and Doflamingo and puts the crew in compromising situations almost constantly. Instead of learning from Ivankov on Kamabakka and building a resistance to his weakness towards women, Sanji arguably got worse and spent two years fucking off instead of developing (though we have yet to see the effects of Sanji's Attack Cooking on Big Mom during the climax of Whole Cake Island).
And while Sanji dislikes Zoro, it's clear it's only because of his ego. He hates the idea of being inferior to Zoro. However, Sanji cannot, for the life of him, understand Zoro's ambition. So really, the cook's whole thing is just a pissing contest to prove he's just as good as the swordsman. But when Zoro makes a vow, he means it. He'll swallow his pride for the crew.
Sanji, therefore, needs to swallow his pride and use what he's learned if he wants to help Luffy become Pirate King. Zoro may have already achieved his goal of defeating Mihawk over those two years, as the only Straw Hat who came face to face with his dream on multiple occasions. Until Sanji does that, he will remain a liability.