Job Information - When querying [msdb].[dbo].SYSJOBS_VIEW through linked server
I tested your code by creating a linked server and following @Erik's comment grant the user 'view database state' and then 'view server state'.  Did not work.  

If you backtrack the view by using sp_helptext of SYSJOBS_VIEW and sysoriginatingservers_view it uses an undocumented object named sysoriginatingservers.  It is not documented what permission is required to read from sysoriginatingservers.

Minimum permission I was able to get the SYSJOBS_VIEW.ORIGINATING_SERVER column value by adding the user as a member of these to database_role of MSDB database.

EXEC sp_addrolemember @rolename = 'db_datareader', @membername = 'taiobtest';
EXEC sp_addrolemember @rolename = 'SQLAgentReaderRole', @membername = 'taiobtest';


Another workaround is to replace your code with below by which you can avoid making the user member of SQLAgentReaderRole role. 

UPPER(CONVERT(sysname, SERVERPROPERTY('ServerName')))  AS SERVERNAME