tl;dr: They're called threads because "thread" is an apt metaphor.
When you start a thread, you rely on the operating system to allocate processing time so that your thread can execute. While your thread is executing, the processor (or core) is placing all of its attention on your thread. When the operating system switches the core to a different thread, your thread stops executing while the other thread is being serviced.
So execution jumps around all over the place. But the integrity of the set of machine instructions remains intact, in spite of these jumps, because we build fences and concurrency mechanisms to protect its state, and the state of the objects it interacts with.
So the thread refers, not to the execution of instructions in any particular thread, but to the instructions that will eventually be executed within the thread that we have created. Each thread, in other words, can be thought of as an individual machine or agent (we call them lightweight processes), without having to think about all of the context switches that the operating system is performing to give the appearance that they're all executing simultaneously.
In other words, despite all of the jumping around that the OS does behind the scenes, that which we call a thread (the sequence of operations that we are executing in a lightweight process) still can be thought of as the same sequence of operations, had we not spawned the thread, assuming we have taken the necessary concurrency protections.
If this description seems too weighty and abstract, then think of a thread in a forum, like Reddit. You can branch off new discussions; each discussion is its own thread. You can jump back and forth between threads. But each thread still maintains its structural integrity as an individual conversation.