Query is slow on AlwaysOn Secondary node
1) Please check the performance metrics (CPU%, Memory, buffers) on the secondary node. Is it a reporting server. AlwaysOn has an option to send all read-queries to the secondary node.

2) AlwaysOn utilizes snapshot isolation. Can you validate if the tempdb is being heavily used? Please validate the write/read latency on tempdb and other databases. Here is one way to check: Query from Database Journal 

DECLARE @Sample TABLE (
  DBName varchar(128) 
 ,NumberOfReads bigint
 ,NumberOfWrites bigint)

INSERT INTO @Sample 
SELECT name AS 'DBName'
      ,SUM(num_of_reads) AS 'NumberOfRead'
      ,SUM(num_of_writes) AS 'NumberOfWrites' 
FROM sys.dm_io_virtual_file_stats(NULL, NULL) I
  INNER JOIN sys.databases D  
      ON I.database_id = d.database_id
GROUP BY name 

WAITFOR DELAY '00:05:00.000';

SELECT FirstSample.DBName
      ,(SecondSample.NumberOfReads - FirstSample.NumberOfReads) AS 'Number of Reads'
      ,(SecondSample.NumberOfWrites - FirstSample.NumberOfWrites) AS 'Number of Writes'
FROM 
(SELECT * FROM @Sample) FirstSample
INNER JOIN
(SELECT name AS 'DBName'
      ,SUM(num_of_reads) AS 'NumberOfReads'
      ,SUM(num_of_writes) AS 'NumberOfWrites' 
FROM sys.dm_io_virtual_file_stats(NULL, NULL) I
  INNER JOIN sys.databases D  
      ON I.database_id = d.database_id
GROUP BY name) AS SecondSample
ON FirstSample.DBName = SecondSample.DBName
ORDER BY 'Number of Reads' DESC;


3) Did you try just doing a simple backup/restore onto the secondary node, removing AlwaysOn, and validating if the query is still slow?

4) I know you don't have NOLOCK hints in query. Can you try rebuilding the indexes on primary replica, See what happens? Query execution takes significantly longer on SQL Server Always On secondary replicas.

"When Snapshot Isolation is enforced, NOLOCK hints are ignored. The discrepancy in execution duration between the primary and secondary replicas occurs because the NOLOCK hint is ignored on the read-only secondary replica where Snapshot Isolation is enforced but not on the primary replica where Snapshot Isolation is not enforced by default. This causes the scan of the clustered index to have key order enforced on the secondary replica. On the primary replica, the NOLOCK hint takes precedence and does affect behavior. When the clustered index is highly fragmented, the enforcement of key order for the scan on the read-only secondary replica causes SQL Server to issue single-page reads. But on the primary replica, SQL Server does an allocation unit scan to read multiple pages per IO request."

5)  Can you validate what the settings are? Queries Maxdop and Memory Allocation as suggested from Kin above, another good idea 

-- Find MaxDop
EXEC sp_configure 'show advanced options', 1
GO
RECONFIGURE
GO
EXEC sp_configure 'max degree of parallelism'
GO 

-- Change MaxDop settings replace to 8
EXEC dbo.sp_configure 'max degree of parallelism', 8;
GO
RECONFIGURE;
GO  
 -- Find Memory allocation on instance
 SELECT [name] AS [Name]
 ,[configuration_id] AS [Number]
 ,[minimum] AS [Minimum]
 ,[maximum] AS [Maximum]
 ,[is_dynamic] AS [Dynamic]
 ,[is_advanced] AS [Advanced]
 ,[value] AS [ConfigValue]
 ,[value_in_use] AS [RunValue]
 ,[description] AS [Description]
 FROM [master].[sys].[configurations]
 WHERE NAME IN ('Min server memory (MB)', 'Max server memory (MB)')