Como o resultado da function é uma tabela a gente pode trata como se fosse uma tabela. então:
SELECT * FROM [TABELA]
esse tabela pode ser substituido por uma function que retorne uma tabela que no caso do exercicio é o FuncTabelaNotas. então o resultado do exercício fica:
CREATE FUNCTION FuncTabelaNotas (@DATAINI AS DATE, @DATAFIM AS DATE) RETURNS TABLE
AS
RETURN SELECT DISTINCT [DATA], [dbo].[NUMERONOTAS]([DATA]) AS NUMERO FROM [NOTAS FISCAIS] WHERE DATA BETWEEN @DATAINI AND @DATAFIM
e o teste dessa função fica:
SELECT * from dbo.FuncTabelaNotas(1900-01-01','2022-01-01')