Mainly because that proof would be part of mathematics too, and hence need proving itself. And that leads to an infinite loop in logic.
This is not the reason why Gödel’s incompleteness theorem proves that no set of rules (Mathematics, C++, Philosophy, Law, Religion etc.) can prove its own correctness. The actual reason is kind of a generalization of The Halting Problem in computing.
Gödel proved that for any set of rules you can formulate a statement (eg. program) that breaks the rules. Therefore it is impossible to fix rules (programming language, Mathematics etc.) to make them unbreakable (always true/applicable for all statements/programs). The Halting Problem can actually be interpreted as a reformulation of Gödel's Incompleteness Theorem in the context of Turing Machines/Computers (indeed there are papers written on the topic).
Whereas the Halting Problem proves that it is not always possible to write an algorithm that always generate a solution (proving that some problems are undecidable), the Incompleteness Theorem proves that it is not always possible to prove that all the rules in your system (Mathematics, C++, etc) can be proven to be always true.
But in practice this is not a problem. Just as we can write useful software even when some problems cannot be solved by software we can do useful problem solving even if we don't use all statements mathematics can produce.
One candidate for the incompleteness theorem may or may not be the twin prime conjecture, which states that there are infinitely many twin prime numbers (couples of prime numbers differing by 2). To this day, it could not be proved, which means that it is either false and we were not able to disprove it yet, or it may be true and we have not found a valid proof for it yet, or it may be one of those statements that Gödel talked about - that is, a statement that is true but unprovable.