Notfred is close, but not quite accurate.
NTFS allocates disk space in units called "clusters." A cluster is an integer number of sectors. Typically, most NTFS volumes use 4K clusters. So a file will consume a multiple of 4K bytes on disk. However, it does not appear that this is the number that is used to calcluate "size on disk," because I have a file that has a size of 1,555,272 bytes and size on disk is the same: 1,555,272 bytes, which is not a multiple of my 4096 byte cluster size.
(If the file is <1KB, the file is stored in the MFT and does not consume a full cluster.)
Then there's NTFS compression. A highly compressible file will use less size on disk than its file size. I think this is where you'll see a different size on disk, is when compression is in the picture.
Defrag shouldn't change the number of clusters a file consumes.
If you want more disk space, the first thing to do is ensure compression is on.