I'll assume for now that 0.999... makes sense at all. If it does, then
0.[9 repeated n times] < 0.999... ≤ 1
for any finite integer n. Now
1 - 0.[9 repeated n times] = 1 / 10^n
so the distance between the number and 1 must satisfy
0 ≤ 1 - 0.999... < 1 / 10^n
for any n. For any positive integer n we have 10^n > n so we also have
0 ≤ 1 - 0.999... < 1 / n
for any positive integer n no matter how large. In other words, 1 - 0.999... is infinitesimal. If it is also not zero, then we can divide by it, obtaining
1 / (1 - 0.999...) > n
for any n no matter how large, meaning 1 / (1 - 0.999...) is infinite.
Now whether infinite and infinitesimal quantities exist in real life we don't know. But we define the real numbers not to include infinite or infinitesimal quantities. If something has an infinite length, we can't measure its length with a real number, and if two lengths differ by only infinitesimal amount, then we use the same real number to describe both lengths. So it's possible that real numbers only approximately describe reality, but we have no way of measuring an infinitesimal difference, so we wouldn't know.
The idea that infinite real numbers don't exist is called the Archimedean property, named after Archimedes who used it a lot in his proto-calculus derivations of things like the volume of a sphere. It's a fundamental property that we assume about the real numbers (although some textbooks derive it from other postulates). Formally it's expressed as the statement that for any real number x, there's an integer n greater than x. The opposite of the Archimedean property would be a real number x that's greater than every integer n (if it were lesser then n would be greater than it, and if it were equal, n+1 would be greater). Such a number is called an infinite number. There are systems of numbers that include infinite numbers, but the real numbers don't. A consequence of there being no infinite numbers in the reals is that there are no nonzero infinitesimals in the reals because their reciprocals would be infinite, as we saw for 1 - 0.999... .
Since 0.999... is supposed to identify a real number and 1 - 0.999... can't be a nonzero infinitesimal if it's a real number, the only option is for 1 - 0.999... = 0, which means 0.999... = 1.