The answer is quite simple. Most people want to multiply numbers without having to use the * symbol, e.g. 3x vs 3*x.
So given that this exists in Mathematica, using () for function arguments would introduce ambiguity.
Is f(x + y) meant to be f[x + y] or f*(x + y)?
This is actually a problem Wolfram|Alpha faces since itsit allows for all forms of inputs.
Other languages like C chose the other route, which means you must use * to indicate multiplication. Given that Mathematica's original purpose was for mathematics, I think the right choice was made.