It is definitely faster to got with the subfolder variant. Our DMS stores files based on their creation date in a structur like ./YYYY/MM/DD/HH/MM/, which is a good was to look up a file if you know its age.
Just imagine that NTFS on Windows 2008 has directories implemented as a list. If you have 3.000.000 files, the whole list is to be searched. If you have a tree, with maybe 10 entries per level (You need a deepness of 6 then, because you have 3*10^6 files), access to individual files is much faster.
If you always want to access all files at once, e.g. for batch processing, the all files in one folder strategy might be the fastest, but then don't accidentially click on that folder in Explorer, except you need a reason to get you some coffee :)