When I send a transaction from remix, how does it set the gas price for the transaction (not gas cost / limit)?
This depends on client you are using to broadcast your transaction. Most of them choose the standard gas price at the time the transaction is about to be sent. MyCrypto and Metamask do this, for example.
Remix in particularly uses ethgasstation.info, but many wallets such as metamask will use
eth_gasPrice from the node they are connected to