Você pode tentar fazer da seguinte forma via SQL, não sei exatamente se está bem otimizado já que não filtrei a filial da SF2, e portanto o sistema não usará índices na busca. Vai precisar apenas fazer os ajustes de filtro conforme sua situação aí, mas dá para entender bem o funcionamento.
SELECT TOP 10 F2_CLIENTE, F2_DOC, F2_EMISSAO, F2_VALBRUT, A1_NOME , A1_CONTATO
FROM SA1010 SA1
OUTER APPLY (
SELECT TOP 1 F2_CLIENTE, F2_DOC, F2_EMISSAO, F2_VALBRUT
FROM SF2010 SF2
WHERE SF2.D_E_L_E_T_=''
AND F2_CLIENTE = A1_COD
AND F2_LOJA = A1_LOJA
AND F2_EMISSAO <= '20230101'
ORDER BY SF2.R_E_C_N_O_ DESC
) NF
WHERE SA1.D_E_L_E_T_=''
AND F2_CLIENTE IS NOT NULL