Let me give you an example. I got called in to diagnose a problem with a c# web service. They were getting constant OutOfMemory exceptions. The team's solution was to increase memory and then throw up their hands when it that didn't fix the issue. After looking at the code I saw that they were creating a 500mb string. They figured this was a-ok because they had 4gb of memory. They did not know what a string really is, even in a language like C# the memory has to be contiguous. If they had ever worked with C they would have known this and we could have saved time and money.
Sure, you can get some things done without them, but they're critical for understanding bugs or performance issues that arise due to the underlying implementation, and likely to take more time to understand than things that usually fall into the category of "learning as needed on the job".