What Is the Difference between an ‘Orphan Block’ and a ‘Stale Block’?
The terms 'orphan block' and 'stale block' are often used interchangeably, but a technical distinction exists. A stale block is one that was validly mined but not included in the longest chain.
An orphan block, more strictly, is a block that a node receives whose parent block (the block it is built upon) has not yet been received by that node. Once the parent block arrives, the orphan block can be validated and included.
In practice, both terms generally refer to blocks that are not on the main chain.