JOIN FOR SYSTEM TIME with column as the effective system time
You can retrieve all historical rows from a temporal table using FOR SYSTEM_DATE ALL.  That allows a manual comparison of the OrderDate to the SysStart and SysEnd dates:

SELECT o.OrderID, p_then.Name as [Old Name], p_now.Name as [New Name]
FROM dbo.Orders o
INNER JOIN dbo.OrderLineItems oi on o.OrderID = oi.OrderID
INNER JOIN dbo.Products FOR SYSTEM_TIME ALL as p_then
    on o.OrderDate &gt;= p_then.SysStart and o.OrderDate &lt; p_then.SysEnd
    and oi.ProductID = p_then.ProductID
INNER JOIN dbo.Products p_now
    on oi.ProductID = p_now.ProductID
WHERE p_then.Name &lt;&gt; p_now.Name