Why do you say it doesn’t work? I tested that code in Xojo2019r1.1 and Xojo2019r3.1 and it worked.
If you see the docs: https://docs.xojo.com/ListBox.Heading it says:
You can set the headings in a multi-column listbox by assigning to Heading(-1) the text of the headings separated by the tab character, e.g.,
Me.Heading(-1) = "FirstName" + Chr(9) + "LastName"
That’s why Join is needed, to join the array with Chr(9) between each element.
If you tried:
myListbox.Headion(-1) = myHeadings
it won’t work because and Array doesn’t have Tab between elements.