This block cipher just XORs the message blocks [...]
The fact that you talk about "message blocks" here suggests that you're working from one of those awful beginner (mis)definitions of "block cipher" that say that it's a cipher that encrypts a variable-length message one block at a time. Lots of introductory explanations say that, but that's just not how the term is used by actual cryptographers, so I find that (supposedly) beginner friendly "definition" just wrong and confusing.
A block cipher in theoretical cryptography is an algorithm that's intended as a real-life implementation of a pseudorandom permutation family—a secret-keyed algorithm that implements a function that scrambles fixed-length blocks of data in a fashion that cannot in practice be distinguished from a randomly chosen permutation of its domain. This answer on this site goes on at quite a bit of length about it.
What you mean precisely by "block cipher" here is critical because if you're going with the "cipher that encrypts variable-length messages one block at a time" thing that I criticize, then your proposal here:
This block cipher just XORs the message blocks with different keys which are derived from a master key
...is actually a sound way of constructing a secure variable-length cipher from a block cipher (in the proper sense). The widely used CTR mode of operation in fact works along these lines—you generate the key stream (what you call the "different keys which are derived from the master key") by applying the block cipher to a message block counter.
There is a huge gap in your proposal, however, because you don't say how to derive the sub-keys from the master key, other than to assume it is "cryptographically secure"—what does it mean for it to be secure in this application, and how do you achieve it? Actually, this is a great segue into your mention of substitution/permutation networks, because that's the "special sauce" that AES is using to satisfy that requirement, that you can't achieve at all if all you have at your disposal is a master key and XOR.
So, to restate and summarize:
- In spite that a ton of beginner materials out there say that a "block cipher" is an algorithm that encrypts a variable-length message one block at a time, that's not the actual technical definition in cryptography.
- Your idea of encrypting a variable-length message by splitting it into blocks and XORing each independently with keys generated with a "key expander" is, at its heart, sound and very common.
- However, you gloss over how your key expander would work, and that is precisely where techniques like substitution/permutation networks (or alternatives like Feistel networks) fit in. It's one of the things makes AES suitable to use as your "key expander" for this application.