The reason for a fee is to prevent situations like the monopoly problem. For example, suppose there was no fee, and a user selects an extremely high predict price after purchasing a shard. This would prevent a buyout from happening and effectively lock the NFT in the protocol since no buyer will match the unrealistic price that has been set.
Similarly, suppose a user sets an expiration date extremely far into the future. If the NFT were to drop in demand and/or value, the NFT would get locked up until the after expiration date (when the Dutch auction starts).
Thus, the size of the fee is dependent on both the predict price and expiration date.