Yes, the system is designed in a way that you should expect a new block to be mined every 10 minutes, which is what is needed for a new transaction to confirm. As more blocks are mined on the top if it, the transaction gets more and more "confirmations". Each user decides how many confirmations are required for the transaction to be considered "safely completed".
Although it should take roughly 10 minutes to create one confirmation, due the nature of the process, it can be much faster (think tens of seconds) or much slower (think more than 1 hour). So definitely, in some cases, you may need to wait a long time before you get the number of confirmations you want. Another factor here is the number of transactions that are currently waiting to be confirmed. If there are many such transactions, your transaction may not make it into the very next block, thus prolonging the delay even more.
This is the reason for many different technologies to emerge. You can see many altcoins that change the parameters to lower the time needed for the successful "completion" of the transaction. But even on Bitcoin, you can see technologies like Lightning Network to emerge that promise very fast completion times.