1.) The EVM (Ethereum Virtual Machine) is an application that runs on each node (on top of that nodes existing hardware resources (CPU, RAM, storage, etc.)) and makes it possible to execute smart contracts on the Ethereum network in such a way that all nodes agree on what the result of executing a particular contract should be. A smart contract is isolated from directly issuing instructions to a node’s CPU for security reasons - it protects the node and the network against malicious code.
2.) The EVM reads and executes instructions in a language called bytecode. The instructions are typically written by people in a language called Solidity.
3.) Solidity is the programming language humans use to write a set of instructions for a smart contract. Because the EVM cannot read Solidity, it requires a special application called a compiler to convert it into bytecode, the only language that the EVM understands.
4.) Bitcoin can’t run the same type of complex programs that Ethereum can because it uses a Turing-incomplete language called Script. Bitcoin developers did this intentionally because they didn’t want people spamming the network with infinite loops, which can be used to perform a DDoS attack on a network. Additionally, using a Turing-incomplete language saves valuable space on the blockchain. Bitcoin was designed to do one thing - be a currency and/or store of value, which it does very well because it runs on a less complicated programming language.
5.) A Turing-complete programming language is just a language with full programmability. On the technical level, it is a language that uses loops - a programming paradigm that allows a single piece of code to execute a specified number of times. This adds a huge amount of functionality to a language and greatly reduces the need to write the same piece of code more than once.