Because 128 is the standard max length for an identifier in SQL Server.
That this should not be a roadblock. While it is common that the name of a linked server agrees with the actual name of the data source, it does not have to be that way. The name of a linked server is really only alias. For instance, you can do this:
EXEC sp_addlinkedserver 'MYSERVER', '', 'MSOLEDBSQL', 'Myserver.subdomain.domain.com'