Possibly to to bring it up to $0, even.
Orders take time to fulfill. Someone has to read them, pack them, make an address label, etc. Unless you're doing it yourself -- and don't value your time -- someone has to be paid to do the work. $20 to send you an empty box, from a one-man business, means that someone is paying themselves around $15 an hour, or possibly less.
To a certain extent, big operations (like Amazon) can refine the shipping process to bring that minimum down, but even then "free" shipping is just a come-on, that results in more expensive orders subsidizing the less expensive orders, to reduce competition and lock in your business.
Try running a small mail-order business for a while -- then report back on why shipping should always be free.