Giving away first class seats for free doesn't really help business either. Not really fair for one passenger to pay a premium for a first class seat while another passenger gets it for free.
Also, how would a gate agent determine which passengers get the upgrade and which don't. Anyway you look at it, it equates to more headaches and workload for customer service agents.