There is a good explanation of this on Investopedia. A few quotes summarizing the issue:
Not All Stocks Trade the Same Options
options first began trading, each stock was assigned to one of three
cycles: January, February or March. There is no meaning as to which
cycle a stock was assigned - it was purely random.
Stocks assigned to the January cycle had options available only in the
first month of each quarter: January, April, July and October. Stocks
assigned to the February cycle had only the middle months of each
quarter available: February, May, August and November. Stocks on the
March cycle had the end months of each quarter available: March, June,
September and December.
The Modified Expiration Cycles
the original rules were modified, and in 1990, the CBOE decided that
every stock would always have the current month plus the following
month available to trade.
Every stock has at least four expiration months trading. Under the new
rules, the first two months are always the two near months, but for
the two farther-out months, the rules use the original cycles.
If a stock has LEAPS available, then more than four expiration months will be available.
LEAPS are long-term options that, with some exceptions, are no more
than three years out and usually trade with a January expiration date.
If a stock does have LEAPS, then new LEAPS are issued in May, June or
July depending on the cycle to which the stock is assigned.
But you really need to read through all of the article (and follow the links there) to understand the issue, it is quite convoluted.