A fixed set of steps for getting from an input to an output. A recipe, essentially. The important thing about a traditional algorithm is that a person wrote every step down, so you can read it and know exactly what it will do. Machine learning breaks that property, which is the source of most of what is difficult about it.
Technical view
Formally a finite, unambiguous procedure that terminates. Classical software engineering is the practice of specifying behaviour as algorithms; the guarantees that follow, testability, auditability and determinism, are what learned systems give up. A trained model is still executed by algorithms, but the behaviour comes from parameter values nobody chose individually, so ‘reading the code’ tells you almost nothing about what it will do.
Related
Part of AI Terminology Index, section: The Foundations.