“Both 0 and 1 simultaneously” is a lie-to-children: it's a simplification intended to be comprehensible and not fully accurate. It's not a very good one. A better way to present it is that a qubit is partly 0 and partly 1. It's not a single number, it's a function that takes values between 0 and 1.
As for why… it's physics. Classical physics says that a particle is in a specific location at a specific time. That works very well when you want to calculate the trajectory of a planet in a solar system. It doesn't work when you want to calculate the trajectory of a subatomic particle. It turns out that a better model of physics is that a particle has a presence density: it's all over the universe, but almost all of it is concentrated in a tiny zone. Similarly, a photon's polarization is not just a direction, but a density (which is more or less the same as a probability distribution): there's a certain proportion of it in every direction. And this is still a lie-to-children — more accurately, the density is a complex number.
Obtaining results from a quantum computer involves summing the density functions of many qubits. It's kind of like adding $n$ numbers between $0$ and $1$ and getting a conclusive result if the sum is either close to $0$ or close to $n$, except with more complex math.
Recommended reading: “The talk” by Scott Aaronson and Zach Weinersmith