I think it's easier to understand with an example:
Suppose this arbitrage between 3 markets:
BTC/USD = $1000 USD // just to make easier the number
BTC/EUR = $870 EUR
EUR/USD = 1.17 USD
We buy 1 BTC at $1000, then sell it for €870 and then change them to USD by $1017.9 USD.
This looks like a non-risk always win strategy, which is obviously impossible but I don't fully understand where is the problem.
I think possible problems are, speed, liquity and commissions.
a) Speed: prices will change with time so we need to do the 3 transactions at the same time, is this really so difficult with current computers?
b) Liquidity: to execute orders quickly we need market orders, so a big order will move the price. But then we could avoid this just moving a small qty (like $1000 on the example)?
c) Commissions: we could just trade when the profit expected is greater than this. In our example if commission is 0.3% per transaction it will cost $9, so we end with $9 in profit instead of $18, but still being a good number (0.9% profit)
What is the problem with this arbitrage strategy? because is naive to think it will work of course but I can't see where is failing.