Usually dpkg -l will try to limit it's output based on the COLUMNS env variable. As a result, dpkg cuts off part of the package name, the version, and the description.
This ensures that dpkg does not look at the COLUMNS variable (since it is writing to a pipe instead) and this you get the full data from the dpkg -l command.