The bitcoin transaction fee varies for two reasons: 1) the price of bitcoin itself, because the fee is paid in bitcoin and 2) the amount of bitcoin to pay the fee isn't really a flat fee. The way bitcoin works, miners who create the next bitcoin block only have a certain amount of space in the block to fit transactions.
Nowadays, due to the number of bitcoin transactions being created, a miner can't usually fit all the current pending transactions into the next block so they prioritize the transactions they put into their block based on the fee paid by the transaction (because the miner gets the fees for all the transactions he can include in his block). So if you want your transaction to be processed quickly (i.e. to be included in the next bitcoin block), you can tell your wallet to pay a higher fee and increase the likelihood of your transaction being one of the lucky ones to get into the very next block. But it's essentially a competition between all the other people doing bitcoin transactions, so there's no guarantee about how much you should pay as a fee to get your transaction processed as soon as possible.