In order to get an idea of "why", it helps to know something about the "when". Historically, assemblers were the first programs that took human readable programs and converted them to machine readable programs that a computer could execute.
The very first computers, before operating systems or programming languages of any sort were available--and even afterward, at times--the way to run a program on a computer was manual. An operator would "patch" the program into memory, one word at a time, using switches on the front panel. The on/off switch settings for each program word were the binary memory address and contents. For each word in the program, the operator would have to set the address switches, set the data switches and push a button or toggle switch to store that word.
It wasn't long before people figured out how to save the patched contents of memory on punched cards or magnetic tape, then use a smaller program (called a "loader") to read the saved program into memory and execute it. This was easier, but the operator still had to patch in the loader program. With punched cards (some systems used punched paper tape instead) a programmer could prepare the binary deck "offline" and not use a very expensive computer as a programming tool.
Here's where assemblers come in. The loader freed up the computer, but it still took a lot of human time to prepare those binary decks. Engineers were already thinking in terms of machine instructions, not bits, because that's how a computer operates. Programs were constructed using informal notation, something like what we now call "assembly language" (or "assembler language"...that was more common when I started in the early '70s.)
The idea of a program to read in a more formalized version of each instruction, in symbolic form, was a natural. Such programs were the first assemblers; taking one line of input in a human readable form for each instruction and converting that to the binary form of the instruction for computer execution.
So, much of the "why" is that assembly language saved time (and money!) compared to "programming in binary." The "ease of use" is part of that time savings, and there's always room for intellectual curiosity in a field that's new and complicated, but the prospect of time and money savings is what gets projects funded and products sold.
If the question is, "Why assembly and not directly to some higher-level language?" ---
That's because progress tends to be incremental. It took quite some time for develop algorithms for optimizing machine-generated code; and then to develop hardware to hide the shortcomings that couldn't readily be removed.