An idiosyncratic distinction I find useful (though don’t reliably stick to) is that there is hard work and difficult problems, and these are not all that closely related. The distinction is roughly that something is hard work if you have to put a lot of time and effort into it and a difficult [problem] if you have to put a lot of skill or thinking into it. You can generally always succeed at something that is “merely” hard work if you can put in the time and effort, while your ability to solve a difficult problem is at least somewhat unpredictable.
I think about this distinction regularly in the context of software engineering, though I think it probably applies to most “knowledge work”. At an intuitive level, I think we’ve all encountered this: there are problems that are solvable by throwing a lot of human-hours at it (“Hard Work”), and problems that are not a function of raw work hours, but rather require dealing with ambiguity (“Difficult Problems”).
The more unpredictable the task is as a function of allocated effort to task completion, the more likely it is to be a Difficult Problem.