I'd have to see a more detailed description of how you tested it to answer that, but 1MB in 2.5 minutes seems far too slow.
First, a query on SQL server outs a row with a filename to an outer handler on stdout. Handler switches itself for data collection.
SQL server selects a MEMORY table for a MB of data to stdout. The hadler collects till the end of transmission and then writes a collection of rows to the file chosen one step up.
mashiah