The ECU itself will happily run on as low as 8 volts, but I can think of a couple of explanations for why it's working better with a new battery:
1) If a fault was logged by the ECU at some point (i.e. transient sensor malfunction etc) then that fault won't be automatically cleared until the engine has been restarted 50
Some fault codes will result in reduced power because they disable peripheral functions like VVT, or invoke various levels of "limp home" modes.
Replacing the battery (or just disconnecting the battery) will clear the ECU's memory, and the fault codes all disappear.
2) Although the ECU will run on low voltages, it tries to compensate for the lower voltage when calculating the injector pulse times and ignition dwell.
Lower voltage means the injectors take longer to open, so need to be open longer.
Lower voltage affects dwell because the coil needs longer to charge between fires.
As both the injectors and coil draw a reasonable amount of current, if your battery was weak then the voltage might be dropping even further as they activate due to the load, resulting in insufficient fuel and/or weak spark.
Either way, it sounds like you got a good result by replacing the battery so it doesn't really matter
Here's the twinspark's injector battery bias and dwell maps, just in case you're interested...