JSON columns cannot be assigned a default value.
What you are in essence asking -- without realizing it, presumably -- is how to force MySQL to revert to its old, incorrect behavior of ignoring your incorrect table definition and pretending that you really said
ALTER TABLE items ADD description text NOT NULL but with the default value missing because that is the only alternative. So you are left with a nonsensical table definition.
The new, correct behavior is indeed tied to the new recommended
@@SQL_MODE defaults. You're going to make trouble for yourself it your preferred solution is to unfix the server, rather than unbreak your table definition.
I understand that this is "working" for you now, but my point is that it is still in fact broken.
SHOW CREATE TABLE should reveal that your declared default value is in fact not there on your current production server.