This is a good question. I had trouble deciding what to write in the tutorials about it.
First, you have to acknowledge the expiration date is mostly an informative value. An expired key is still working perfectly: you can sign, encrypt, decrypt. However, most PGP compatible application will consider this information for security purposes. Kleopatra will display a big red flag about the key being expired, most markets will ask you to provide a new one, etc. But that's on the receiver to decide how to react. Therefore the choice of an expiration date is mostly a safety measure you impose to yourself. In the event your key would be lost or compromised, it will mitigate the damage done by an attacker overtime, as it will eventually expire.
As /u/meatt suggested, you can perfectly give up on this by not setting one. It will definitively make your life easier. I'd argue it is the best choice for a personal quantity buyer or for a non-sensitive key, such as the one you use for Dread 2FA. However, I like to see an expiration date on vendor's key. It basically makes up for a canary, as the vendor has to prove they have ownership of the signing subkey once in a while. But this creates additional difficulties for the buyer as they have to update the public key each time the previous expire to ensure it's still active.