You can’t just keep increasing the block size. More block size = bigger blocks = more bandwidth and disk space to host a full node. It’s why the majority of Eth’s nodes are now hosted in one of like three corporate datacenter providers. Sure, disks keep getting bigger and more affordable but big pipes to move that much data haven’t kept up at the same pace. Bitcoin cash is now 16x Bitcoin’s original block size, and they are still calling for larger blocks to keep tx costs low. Eventually, with any block size, especially if you want to capture a good portion of humanity’s transactions, you will end up with massive competition for blockspace aka high fees.
Blockchain has a fundamental problem. If you put it on the ledger, all nodes have to store that forever. The more you put on the ledger, the bigger that ledger gets, the more resources you need to host it/participate, the more centralized your network becomes. Adding more block space is one solution, but comes at the cost of decentralization and doesn’t scale to all of humanity’s transactions let alone even just replacing SWIFT/IBAN. L2s are another solution, you get faster transfers and fees not directly coupled to chain space in exchange for slightly less trustworthiness (you may have to send a channel “back to chain” if a bad actor tries something, and you have to monitor that channel and chain to see if you need to do that, which is all handled automatically). With Bitcoin’s L2, I can send funds anywhere in under a second for pennies in fees. It actually works for buying coffee. In the space 1 transaction took on chain, I can now have billions of transactions. Not just between me and the person I opened the channel with, but between me and any other person who has coins on lightning. And you can run a lightning node on a raspberry pi or android phone. Lightning isn’t perfect, the inbound liquidity thing is annoying (though Ark and Fedimint proposals solve this in different ways), but it works really well and has been stable and usable for years. The inbound liquidity issue is being worked on as well through automated liquidity provisioning. Not perfect, but leagues ahead of Monero which has zero L2 and zero roadmap for an L2.
Tldr: Monero’s fees are low because there isn’t much competition for blockspace. And it’s slow. Because it’s all on L1. That space will run out as it scales, it’s up to Monero to decide how to solve that problem.
L2 means “layer two”, in short, a way of conducting transactions “off-chain” while relying on the “base chain”/L1 for security. It helps keep chain bloat minimal.
There are various ways to do this with various trade-offs in terms of speed/privacy/cost/centralization/etc. Bitcoin’s main one is lightning (there’s also Ark), Eth has like a dozen of them most of which are super centralized but you’ve got Polygon, Arbitrum, Optimism, Nova, etc. They all work a little differently.
Lightning’s concept is very simple: you make a “channel” on-chain by depositing funds into that smart contract which lives on-chain (1 transaction). The channel exists between you and one other party. The channel starts with a balance of 100/0 meaning all the BTC is yours (because you deposited the BTC). When you send BTC to the other party, you update the “balance” of that channel by both of you signing a thing saying it’s updated (now it’s 99/1). This happens off-chain. At any point, either of you can close the channel (on-chain) and claim any BTC that’s due to them according to the balance. In this example, you would get back 99 BTC and the other person would get 1. You can also transact with other parties by sending BTC “through” a chain of existing channels. And these transactions not only don’t require paying on-chain fees, they can also be confirmed in < 1 second because you don’t need to wait for the next block. You can have essentially infinite transactions back-and-forth in a channel, but one “side” of the channel cannot dip below 0. Almost all of this is abstracted away for the end user.