English is my 3rd language so I am not an expert in this field.
Both can be used interchangeably in the modern day, but I would say technically the correct use of the word is the hyphenated one.
I use both variants.
When I type down a more sophisticated text, I use the hyphened way to show the readers that I took a considerable time in what I have written, hence took the time to address that the word "add-on" should be written with a hyphen, as it is a made up word.
And when I write one-liners or quick responses (type fast), I ignore it and write without the hyphen. But sometimes I just forget the hyphen, because my mind is bothered with something else.