Search a file system for files that match a given pattern
Looks quite pythonic. However:


_ stands for don't care, akin to famous hunoz. It is not expected to be used in expressions later on; it is a placeholder.


Fot instance, I am totally lost in what

        for _ in [join(root, _) for _ in files if fnmatch.fnmatch(_, patt)]:
            yield _


does actually yield.


os.walk() works perfectly well on Windows
I don't see how do you want to break search into two functions. What would those functions do?
Any usable file matcher should have an option to specify file type (plain vs directory vs link vs etc), attributes, etc.