As a decentralized digital cash system, Bitcoin has some quirks that are not found in traditional, centralized online payment solutions. One of those quirks is that transactions made directly on the base Bitcoin blockchain can be somewhat unpredictable in terms of how much they will cost and how long they will take to process.
For a Bitcoin transaction to finalize, a miner must confirm it in a block. New blocks are generated roughly every ten minutes, but there can be a large amount of variance in that ten minute average block time due to Bitcoin's difficulty adjustment. In fact, an hour or more can pass with no new blocks of transactions having been mined on a relatively frequent basis.
Note: Bitcoin transactions are technically never finalized. Instead, they become increasingly impractical to reverse with every mined block after the block that included the transaction in question. While it is likely fine to consider a low-value Bitcoin transaction finalized after its inclusion in a block, it is usually recommended to wait for six block confirmations for high-value transactions.
On top of the variance that comes with Bitcoin block times, users also need to make sure there is a large enough fee attached to their transaction. Since there is limited space in each block, miners will only include the transactions that have the highest fees attached to them. Users are effectively bidding for miners to include a transaction in a block. While the Blockstream app can estimate the proper fee to get a transaction into a block within a certain time window, it is not an exact science.
Note: If you have a transaction that seems to be stuck, try increasing the fee attached to the transaction. If there is a large backlog of transactions for miners to process, increasing the fee can effectively move your transaction to the front of the line.
It's worth noting that Bitcoin is still an evolving network. Over time, more transactions may move to secondary layers such as Liquid or Lightning. Compared to the base Bitcoin blockchain, these layers make tradeoffs to offer improved payment experiences where transaction processing time and cost can be more reliable.