Found a solution.
I moved the CROSS APPLY to a subquery:
CREATE FUNCTION [dbo].[fnTAGS](@STARTDATE DATETIME, @ENDDATE DATETIME) RETURNS TABLE AS RETURN ( WITH T AS ( SELECT DISTINCT tags as TAGS_LIST, TRIM(' "[]' from value) as TAG FROM DB.dbo.Source CROSS APPLY STRING_SPLIT(tags, ',') ) SELECT T.TAGS_LIST AS TAGS_LIST, T.TAG AS TAG FROM T, DB.dbo.Source WHERE DB.dbo.Source.[creation_date] >= @STARTDATE AND DB.dbo.Source.[creation_date] <= @ENDDATE );