The optimal pricing and hedging of claims written on a non-traded asset is studied using both traditional dynamic programming and modern duality techniques, and comparisons between the two methods are drawn. A traded asset, imperfectly correlated with the non-traded asset, is available for hedging, and we focus primarily on the case where the agent's preferences are described by an exponential utility function. Representations for utility-based prices of the claim are obtained using the two methods, and the link between them is elucidated. The dynamic programming method yields a nonlinear partial differential equation for the value function representing the agent's maximum utility. The PDE is linearised by applying a power transformation to the value function. This distortion technique results in a probabilistic representation for the claim's value, involving a measure under which the drift coefficient of the non-traded asset is modified, but which is not necessarily a local martingale measure. The dual approach yields a different representation for the utility-based price, involving an optimization (over the class of local martingale measures) of a functional involving the claim payoff and an entropic penalty term. The equivalence of the two representations is demonstrated by showing that they yield the same hedging strategies for the derivative.