This is normal. When a storage pool is created on a disk image loop file, it is sparsely allocated, which means the blocks are only allocated from the host system as they are used.
However depending on the storage pool driver it may (or most likely may not) release blocks back to the host OS when they are not in use, instead it will keep them allocated to the pool file for reuse in the future.
Another thing to note about the loop file (default.img in your case) is that it will only grow up to the size it was configured to. lxc storage show default should tell you which size it is.