Yes, this wasn’t clear for me in the beginning either, why use different terms that mean the same but are more or less interchangable? It is basically addressing different functions and properties, depending on your POV, which makes sense: (ELI5 version)
As you know, the Cardano blockchain is maintained on and by a network of computers. They are connected with each other and as the network architecture looks like a web and each computer can be seen as a knot (or a node) in this web, they are called network nodes. Each one communicates with the connected other nodes and relays information to them. So a relay and a node are the same, the term ‘relay’ is more referring to what each one does (relay information from one to the next node), and the term ‘node’ refers to it’s role in the network architecture (to form a web and connect with others).
Most nodes really only relay information, but we also have special nodes that produce blocks. They have certain keys and are for security reasons only connected with relays a stake pool operator controls, and they are called ‘block producing nodes’, this term also refers to the node’s function (produces blocks), and although it usually sits behind one or more relay nodes, it is still a part of the network (a node).
The term ‘stake pool’ or short ‘pool’ refers to how the selection mechanism to elect a block leader in a proof-of-stake algorithm works, and how participants cooperate to maximise their rewards. They delegate their ADA to block producers to increase their chance to produce a block and get rewards, and as the ADA of several delegators is put together in one pile, or is pooled, it is called a ‘stake pool’. So this term refers to what the delegators and the stake pool operator do with it (pool their ADA for staking). From a technical POV, a stake pool consists of a block producing node and at least one relay node.