In the shorter-lived sense, "embedded" referred to low-power, limited functionality processors such as the ARM7/ARM9 CPUs in TFA. These setups often didn't have MMUs, would typically run a very bare-bones RTOS with soft- or hard- realtime support. Remember no MMU means no process isolation. If a task has a stack overrun, it just keeps going into an adjacent task's stack. If a pointer gets corrupted and the software starts writing who-knows-where in RAM, pray it dies early, hard, and reproducibly. The code size, ability to use third-party libraries, etc. were all greatly limited. Very much more the aesthetic of engineering a one-off custom mechanism, albeit in software vs. in the machine shop.
These days, the envelope of "embedded" CPUs has embraced vastly more powerful hardware, while still remaining low power. They have MMUs, they run real Linux (vs. ucLinux or a traditional RTOS) and are much easier to develop for. Think Arduino, Rasberry Pi, and on and on. This has been a huge access revolution for hackers, makers, and anyone who wants to just get down and prototype some ideas.