Let us be more precise about definable numbers, to avoid common pitfalls.

Suppose we have chosen our favourite foundational system $S$, which is in modern mathematics ZFC. $S$ of course can be implemented by a computer program that will given any input theorem and purported proof will output "yes" if the purported proof is a valid one for the specified theorem, and will output "no" otherwise. Then we can say that every **definable object** (over $S$) is one for which there is some $1$-parameter sentence $P$ such that $S$ proves $\exists!x(P(x))$. In some sense $P$ is the definition of that object.

But to talk about definable reals, there is a problem. We cannot use the above definition, because we cannot ask whether there is a defining property for a particular real number, because there is no way to encode all real numbers into distinct finite strings, much less in a way that makes sense for us to talk about whether $S$ proves something about it. But here is one way to get around that issue. If $S$ (like ZFC) can talk about the collection of real numbers $R$, then we can define a **definable real** over $S$ to be a real $r$ such that there is some $1$-parameter sentence $P$ over $S$ such that every model $M$ of $S$ that has the same reals satisfies $P(r) \land \exists!x( x \in R \land P(x) )$, and we call this $P$ a **defining property** of $r$. Assuming that $S$ has a model, this definition implies that no two reals can satisfy the same defining property.

To emphasize again, this definition of "definable real" is **not the same** as "definable object that is a real" ('using' the earlier definition of "definable object"); the latter does not even make any syntactic sense, since a "definable object" is just a $1$-parameter sentence over $S$ and not an object. It is in fact impossible to talk (within $S$) about whether an object satisfies some $1$-parameter sentence over $S$ or not, for exactly the same reason as in Tarski's undefinability theorem.

Of course, for any reasonable $S$ (including ZFC), by Godel's incompleteness theorem we cannot prove that $S$ has a model (unless $S$ is inconsistent), but we can prove that if $S$ has a model with the same reals, then there are countably many definable reals. In such a case, under our definition of "definable real", **uncountably many reals are undefinable**. Even without restricting to integrals. Absolutely no way of defining reals will be able to capture all of them!

To preempt the objection that it is not really satisfying that we cannot say anything about definable reals without assuming a model of $S$ with the same reals, consider that we ought to accept $S$ as **foundational** only if we believe it is meaningful. And it would be meaningless if there is no model of $S$ with the same reals, because then by the semantic-completeness theorem $S$ would prove that fact, contrary to our belief that $S$ is meaningful! Hence we ought to believe (despite not being able to prove) that "definable real" is not a vacuous notion.

Furthermore, we can classify the definable numbers more finely. First we have computable reals, for which there is a program that on input $n$ will output a rational that is within $2^{-n}$ of the actual value. But the unsolvability of the halting problem can be used to show that there is no program that can given two computable reals (as program code) will output "yes" if they are equal and "no" if they are not.

So we can consider the next level in the hierarchy, which are programs that are allowed to get instant answers from the halting oracle (which is literally an oracle that will correctly answer whether any given program halts on the given input or not). Let us call these programs $1$-jump programs. Of course, there will be more reals that can be computed by $1$-jump programs. It turns out that the halting problem for $1$-jump programs cannot be solved by a $1$-jump program either. But again we can go to the next level, which is $2$-jump programs that are allowed to query an oracle for halting of $1$-jump programs. And so on.

In this manner we get a whole lot of new real numbers, and still the halting problem for **all** finite-jump programs cannot be solved using any finite-jump program, so there is a next level beyond that, which we can call $ω$-jump programs. And so on and on and on.

[**Update**]

The question was subsequently edited to ask about **computable** numbers that cannot be expressed as definite integrals of elementary functions, where presumably the limits are also expressed using elementary functions. I am not sure what is the current state of the art, but given any algorithm to compute definite elementary integrals to arbitrary precision such that the time complexity is itself computable, we can easily diagonalize to produce a computable real that is not equal to any of the definite elementary integrals, because we can computably enumerate all elementary expressions. This paper seems to suggest that such an algorithm exists, though I have not looked at the details.