The plane needed to be ready to fly at a moments notice if the fog lifted and there would have been a longer delay if the passengers had disembarked, he said.
"No one can be sure when the weather will change to good conditions."
There was also no agreement between the airline and Christchurch terminal to have workers bring the passengers into the terminal, Mr Ma said.
Passengers were given water after about 90 minutes on the terminal, but the airline was unable to provide food because the terminal did not have the ability to provide enough meals within a short period, he said.
When the flight landed at Auckland one or two passengers complained, but they were "satisfied" with the explanation about the delay and extended stay on board the plane.
Mr Ma apologised to those affected.
"I do apologise for the inconvenience," he said.
"But we have no ability to control the weather. We tried our best to do the best thing and look after the passengers well."
A Christchurch Airport spokeswoman said when an international flight was diverted, a number of different companies and agencies were involved in decisions around the aircraft and its passengers.
"In today's case, the airport company was not involved in any decisions about the plane's passengers."
Meanwhile, more than 60 domestic flights were cancelled at Auckland because of this morning's fog and 11 were delayed.
Fog had lifted by 11.25am, the Auckland Airport spokesman said.
Auckland's fog also caused a private aircraft from Melbourne to divert to Wellington.
Jetstar flight JQ216 from Singapore was also delayed by 25 minutes due to the fog, Auckland Airport said.