Scripts can add columns. They can identify themselves like:
function OnInit(initData) {
initData.name = "Script name";
initData.version = "1.0";
which leads to expected name Script name shown in scripts window.
When script defines more than one column they get grouped into a submenu in "Columns" menu of a lister. Such group name appears to take its name from script name given groups belong to. For some reason this script name in columns menu is stripped from spaces so Script name becomes (harder to read) Scriptname.
I'm not sure I understand.
If script defines only one column then it is displayed in menu with spaces, no problem. It's the script name being reduced that way, not the column names.
Column keywords shouldn't contain spaces, but that's up to you when writing the script. IMO it is an error to include a space in those names when writing the script, even if it technically works.
(There are separate fields for column display names that are actually shown to the user. Those can contain spaces, of course.)
Scripts don't have separate names and display names. Including spaces in their names is normal, and was already happening before script columns were introduced. The spaces in script names are removed automatically when generating fully-qualified keywords for script columns.