Low-level languages like Assembler compile to MUCH faster code than high-level languages. They occupy much less space in memory as well.
High-level languages tend to include code for things you MIGHT be doing, and also tend to generalise on mechanisms for execution of certain tasks - so therefore do not always use the most efficient code to achieve a result.
Note also that a lot of modern high-level languages are interpreted, That is to say your code is converted into code the machine understands at execution time - this is obviously much less efficient than executing direct machine code which is what all assembler languages produce.
There are many variations on mechanisms for running interpreter code, too many to describe here.