Designers should design using what makes sense for their product, their team, their skills set... and various other factors. So no particular method is universally right or wrong.
As time goes on, we see new and often better ways of designing. When I was first starting out, many said not to use use FreeHand, Illustrator, Photoshop... to design with. Their reasoning was that you would spend your time trying to fiddle with the software rather than being creative. It appears some look at writing code with the same distaste designers in the past looked down on computer software.
Although I've used Photoshop for over 15 years, more and more I find myself designing directly in HTML & CSS because, in many ways, it's easier. Once you learn how to do it, there's a lot of time savings. Plus, if you're designing something where the end result will be built in HTML & CSS, it more accurately reflects what the final output will look like.
Again, depending on what you're designing and the team you're working with, the tools vary. Having used Balsamiq & Axure, I've run into more problems by incorporating those tools into a workflow than they solve. For example, we built out a new product in Balsamiq & Axure, and we ran into all sorts of issues properly setting expectations. Axure is especially bad. We also built out a prototype using a JS framework. It took less time, more accurately reflected the UX we wanted to create, and could be leveraged into the final product. Of course, it takes having a JS rockstar on the team to be able to do it.
Currently I am building a design team at a company and I am looking for designers with at least HTML & CSS skills. Many companies are requiring companies to have at least these basic coding skills. Build an experience language and design with it.