Q: "Why is there toybox? What was wrong with busybox?"

A: To answer the first part: Toybox dates back to when its maintainer handed off BusyBox maintainership and started over from scratch on a new codebase after a protracted licensing argument took all the fun out of working on BusyBox. Toybox was just a personal project until it got relicensed years later after its author did a lot of thinking about licenses and about the transition to smartphones. This led to the 2013 talk laying out a strategy to make Android self-hosting, which helped bring it to Android's attention, and they merged it into Android M.

To answer the second part: BusyBox predates Android by almost a decade, but Android still doesn't ship with it because GPLv3 came out around the same time Android did and caused many people to throw out the GPLv2 baby with the GPLv3 bathwater. Android explicitly discourages use of GPL and LGPL licenses in its products, and has gradually reimplemented historical GPL components such as its bluetooth stack under the Apache license. Similarly, Apple froze xcode at the last GPLv2 releases (GCC 4.2.1 with binutils 2.17) for over 5 years while it sponsored the development of new projects (clang/llvm/lld) to replace them, implemented its SMB server from scratch to replace samba, and so on. Toybox itself exists because somebody with in a legacy position just wouldn't shut up about GPLv3, otherwise its maintainer would probably still happily be maintaining BusyBox. (For more on how said maintainer wound up working on busybox in the first place, see here.)