Il est le deuxième fils d'Alexander Duff, comte Fife et le frère cadet de James Duff (4e comte Fife). En 1793, il reçoit un brevet d'enseigne dans le Régiment d'infanterie et sert à Gibraltar, en Flandre, dans les Indes orientales en 1798, et sous Baird lors de l'invasion de l'Égypte. En 1806, Duff commande la colonne centrale lors de l'attaque de Buenos Aires.