El operador APPLY debería hacer el truco:
SELECT *
from MarketDataMaster
cross apply dbo.fn_MarketDataDetails (MarketDataMasterID)
Básicamente, esto llama a la función una vez por fila devuelta por MarketDataMaster. La "aplicación cruzada" funciona como una unión interna, en la que solo se devolverán las filas para las que la función devuelve datos; use "aplicación externa" para una funcionalidad similar a las uniones externas izquierdas.