As i see main difference is in an overhead with Identation. MarkupBuilder makes a lot actions to make prettyPrinted xml string, when streaming writer produces one-line output.
As I think, you can provide your IndentPrinter, and so minimise overhead.
There is a same question here, but it's not too clear answered.
By the name, I should propose, that Streaming will write data directly in stream, and Not-Streaming version - accumulate in-memory document structure. But in the source of StreamingMB and Ordinary MB I can't find a core difference, that could say, that MB is storing unnecessary data.
So, I think, indentation is only bottleneck.