Deleted items.
You need to understand how the process works before running a defrag. When an item is deleted, it's just marked deleted. The item is retained until after the first online maintenance after the expiration of the deleted items retention period. If you want to recover the space, you have to wait:
1. Until deleted items retention period has expired.
2. The next online maintenance cycle after the expiration of deleted items retention completes.
Then you can do an offline defrag and recover the space.
With all of that said and done, unless you have permanently removed a large amount of mail, the whole exercise is fairly pointless. As users get mail, pages within the database are allocated. As users delete mail, pages are freed. During online maintenance, the free space is consolidated only to start the cycle over again the next day. Even if you did succeed in removing the free space with an offline defrag, if you have not permanantly removed a large amount of mail (migrated users to another store/server, imposed smaller mailbox limits, etc.), within a day or two the free space will return. If you monitor the online defrag completion events in your application log for a while, you'll soon come to the conclusion that the amount of free space in your database is roughly equivalent to your change delta (not a bad idea to know what your change delta is by the way, if you're doing snapshot backups). This is normal.