Well I'd expect /f* to be faster than /filter-ing to a hidden window but not much faster. In both cases the file is opened/closed once and all searches are done in memory.
The main difference that makes /f* faster is that /filter reads the entire file and dumps those lines that match $2 in the window, whereas /f* commands don't need to scan till the end of file; only till the Nth matching line. But this speed difference becomes smaller as N in $findfile(file,*wildstring*,N) grows. For N = <total number of matches> the difference is almost negligible: /fseek would have to scan the entire file, so it would essentially read the same amount of data as /filter.
However, no matter what you, me etc think is faster, the best way to make sure is to benchmark, and that's what the original poster should do.