"Warning: The join order has been enforced because a local join hint is used" returned with no Join hints
You can get the definition of that DMV by running the following T-SQL:

EXEC sp_helptext 'sys.dm_exec_query_memory_grants'


Which shows that a join hint is being used in the underlying view definition:

CREATE VIEW sys.dm_exec_query_memory_grants AS  
 SELECT A.session_id, A.request_id, A.scheduler_id, A.dop, A.request_time, A.grant_time,  
 A.requested_memory_kb, A.granted_memory_kb, A.required_memory_kb, A.used_memory_kb, A.max_used_memory_kb,  
 A.query_cost, A.timeout_sec,  
 convert(smallint, A.is_small) as resource_semaphore_id,   
 B.queue_id, B.wait_order, B.is_next_candidate, B.wait_time_ms,  
 A.plan_handle, A.sql_handle,  
 A.group_id, A.pool_id, A.is_small, A.ideal_memory_kb  
 FROM OpenRowset(TABLE DM_EXEC_QE_GRANTSINFO) A   
 LEFT OUTER LOOP JOIN OpenRowset(TABLE DM_EXEC_QE_GRANTWAITERS) B  
 ON A.session_id=B.session_id and A.request_id=B.request_id and A.sql_handle=B.sql_handle and A.plan_handle=B.plan_handle  


Specifically it's the "LOOP JOIN" hint that is triggering the join order warning.  Check out these Microsoft docs on join hints:


  If a join hint is specified for any two tables, the query optimizer automatically enforces the join order for all joined tables in the query...


So even though the view just has a hint to enforce a particular join strategy (loop), a join order hint is automatically applied.