Let's say you have a VM file that uses 200G of dynamic space, but really only has 40G in usage. If you add fles and delete, at some point the file will be larger than the current space you are using.
Take this image which shows is using 71G of space on the host:
The actual space being used inside the image is about 43G as we can see:
virt-sparsify source-image.qcow2 shrunk-image.qcow2