nginx does a lot of optimization at many level that ab can't figure out.
In short, it only profiles the speed of the HTTP parser and certainly not the network stack.
There are a lot of things that a HTTP server does in order to keep the connections stack "steady" : Disabling the Nagle algorithm at the right moment, gracefully handling failure, managing slow clients the right way, ...
FWIW, Tsung is an awesome benchmarking tool written in erlang : http://tsung.erlang-projects.org/