Several sites I have been reading say that set theory is a good foundation for mathematics because virtually every theorem can be cast into a theorem in set theory.
What is an example of a theorem that can't be cast in terms of set theory? Is there any reason we know of so far to doubt set theory's ability to describe all of mathematics?
There is actually a precise sense in which any foundation of math will fail to formalize certain statements which we should believe are true.
Suppose I view the mathematical universe as a structure $V$ in the language of set theory (this is the point of view taken by ZF, ZFC, NF, etc.). Then - informally - I can talk about the theory of $V$ in this language. This theory can be coded by a single real, and - assuming $V$ really is "everything" - this real should exist. So
is a "true" statement. However, this sentence cannot be expressed in the language of set theory in any satisfactory way, by Tarski's theorem: https://en.wikipedia.org/wiki/Tarski%27s_undefinability_theorem. We could expand our language to make this sentence expressible, but then truth in that expanded language would not be expressible, so we would need to further expand the language . . .
Exactly how problematic you find this sort of thing varies from person to person; but certainly I find it a good argument for caution - I wouldn't want to commit myself to never using a more expressive language, even if I don't think I'm likely to need it.
Note that this has nothing to do with classes (although there is some overlap), and is really an essential feature of how first-order logic works.