Here on DataLoadOptions implementation. I'm debugging a website and it seems that indeed in some cases DataLoadOptions works faster, in some cases it doesn't, I just can't find any explanation.
Also sometimes with Linq it may be faster to have many small queries to load the related child data than a single query using join, no idea why as it's the same data in the end.