The limitation is in the protocol, or rather, its current implementation with the 1MB blocksize limit. It was originally implemented to make growth a little more predictable in the beginning, nothing else. Satoshi himself said that it's only to prevent spam, which was at a time before growth, when it wasn't obvious yet how well the self regulation with TX fees works.
After Satoshi disappeared, other people took over the development, and disagreements over how to continue began. What was mostly a technical argument at one point, became a political argument after Blockstream formed, which had taken investments from banks and had most of the core developers under them.
These then not only pushed for other means of scaling than just removing the blocksize cap, but also actively pushed against that, which split the community in half.
Now we have people who (very simplified) just want the blocksize cap increased, and others who support the scaling methods of Blockstream, namely segwit and, down the road, lightning.
This endless debate with both parts of the community calling the other's solution unsafe is what is currently crippling Bitcoins potential.
1) currently, only about 6 blocks can be verified by the network per hour. That is fixed, any faster and the difficulty rises. Any slower and the difficulty declines. With the current code in use, it will always be about 6 blocks per hour.
2) currently, blocks are limited to 1MB in size. This means that only a certain number of transactions can be processed per block (apx 1200 to 2500).
Thus, only 24 * 6 * #txns_per_block => 170k to 350k transactions can be processed per day. It doesn't matter how many computers are verifying new blocks in the blockchain. This is an... issue.
Note, a "transaction" is moving BTC from one wallet to another wallet.