In the US banks are required to store 10% of their deposits in cash in the form of Fed Funds. Due to misbalance of demand and supply, some banks borrow such cash from others; the volume averaged overnight rate of borrowing is called effective fed funds rate, currently 0.15. At the same time, whatever banks store in fed funds gets interest on excessive (and required) reserves, which is 0.25. Why some banks choose to lend money to other banks at a lower rate, instead of putting this cash at fed at a higher rate?
Federal Home Loan Banks also hold reserves, but are not eligible to earn IOER, so they lend the cash into the fed funds market at a rate below IOER. U.S. branches of foreign banks, who are eligible to earn IOER, borrow from the FHLBs and deposit the proceeds in their accounts at the Fed, earning the spread. U.S. banks don't participate in this arbitrage because they take in retail deposits and are thus subject to an FDIC fee based on the size of their balance sheets, so they are disincentivized to participate in what is a high-volume, low-return trade.