It's quite possible that those pages have not (yet) been indexed. Try a Google search for site:www.example.com/canonical/url
to see if one of the missing pages is indeed in Google's index.
Submitting an XML sitemap is not a guarantee that those pages will be indexed - it is simply a recommendation.
If you look in Google's Webmaster Tools it should tell you (from your Sitemap) how many URLs have been submitted and how many have been indexed.