This works for me.
Step 1: Add the link server using MSOLEDBSQL for @provider
EXEC master.dbo.sp_addlinkedserver
@server = N'MYLINKEDSERVER',
@srvproduct=N'mssqlserver',
@provider=N'MSOLEDBSQL', /* Microsoft OLE DB driver for SQL Server */
@datasrc=N'TESTSERVER',
@provstr=N'Encrypt=yes;TrustServerCertificate=yes;'
-- Use "yes" NOT "true"
Step 2: Configure the login mapping with SQL Authentication
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'MYLINKEDSERVER', -- The Linked Server name created above
@useself = 'False', -- Use False to specify SQL authentication
@locallogin = NULL, -- Use NULL to allow all local logins
@rmtuser = 'TESTREADONLYUSER', -- SQL Server login username
@rmtpassword = 'SECRETPASSWORD'; -- SQL Server login password