Great question, I think I'll probably go Zapata. Canto was way better technically, which could give him in edge, but seriously, Zapata is one of most talented defensive fighters I've ever seen. Like "you’re not going to hit him with a handful of rice." type talent.
Zapata could definitely do more and was more spectacular in doing it. He just wasn’t ever gonna have the consistency Canto had. Even if his head were screwed on right. That freakish, Gumby-like, zig-zagging, low bending, sitting-on-the-ropes style was always gonna be a lot more prone to the occasional (potentially catastrophic) error than the tidy, textbook minimalist style that Canto employed.
Agreed with the above posts. Canto, because of his small stature, relied on his footwork and made great use of the ring, very economic with his movement. He was better "technically" as a defensive fighter because of his consistency and ring smarts. Zapata, with his slender built and height/reach, used more unorthodox movements and angles that made him a hard fighter to outbox. When on point he was one of the slickest and smoothest southpaws, along with Whitaker and Nunn. At his best I think Zapata was more untouchable, but unfortunately he was also his own worst enemy.