There are "mini" options that control 10 shares, for example, but they usually have higher bid-ask spread reflecting the higher cost of pricing accurately/transaction fee/lower liquidity.
Another issue is that out of the money contracts for a single share would frequently trade for pennies, which would greatly increase transaction costs and make the market less efficient. So you would have to standardize on some amount that is large enough to avoid such inefficiency, and 100 is a convenient number for mental arithmetic and reduces confusion. In theory you could have standardized on a larger number like 1000, which is equally convenient, but that would have priced out retail investors who may not own 1000 shares of a company whose share price is in the double or triple digits (which is common) and reduced the liquidity of the options market (which is already not very liquid).
From /u/ins2be on reddit:
"That's what the OCC sets it at in their bylaws.
Unit of Trading
(5) The term “unit of trading” in respect of any series of options or futures means the number of units of the underlying interest which have been designated by the Corporation as the minimum number to be the subject of a single option contract or single future in such series. In the absence of any such designation for a series of options or futures in which the underlying security is a common stock the unit of trading shall be 100 shares."