An oracle is an external service (mostly outside blockchain) which inputs information to the blockchain upon request.
So the flow works like this:
1) Your contract sends a request to an oracle smart contract. For example to get the current temperature on Mars.
2) The oracle contract does something to catch the attention of the oracle service provider - probably emit an event but the exact means is not relevant.
3) The oracle's backend system notices that there is a new request for information in the oracle contract and it retrieves that information from somewhere
4) Oracle's backend system sends a transaction to the oracle contract with the requested information
5) The oracle contract receives the requested information in the transaction and it either forwards it directly to your contract or your contract has to pull the information from the oracle contract. Or perhaps the oracle's backend system can the transaction directly to your contract.
So oracle is just an external service which has a smart contract for communicating with users' smart contracts and relaying the data. Of course there are gas costs associated with the usage but that's up to the oracle provider to decide on who pays for them and how - it's a business decision. But in the end the end user pays for the service (gas).