Why does Inner Join introduce a hidden sort?
I don't think the join is producing the sort  

The group by sum is producing the sort
See the order by in the query plan  

This might be faster
It breaks if the purpose is multiple accounts with same name  

SELECT ah.Id, ah.FirstName, ah.LastName
FROM 
    AccountHolders AS ah
JOIN 
    [dbo].[Accounts] AS a
ON 
    ah.Id = a.AccountHolderId
GROUP BY 
    ah.Id, ah.FirstName, ah.LastName
HAVING SUM(a.Balance) &gt; @suppliedNumber 


Or  

SELECT ah.Id, ah.FirstName, ah.LastName
FROM AccountHolders AS ah
JOIN ( select AccountHolderId
       from [dbo].[Accounts] A
       GROUP BY Id 
       HAVING SUM(Balance) &gt; @suppliedNumber 
     ) a
 on a.AccountHolderId = ah.ID