In what sense are Scala's Try[T] and Future[T] dual?
The short answer is: they are not dual. 

The Try[T] type is basically the sum type $T + E$, where $E$ is the type of exceptions. 

A typical way of rendering a future Future[T] is via temporal logic. Here, a future can be understood as a "weak eventually" operator, $\Diamond T$, saying that at some point in the future you may receive a $T$. This can be decomposed as the coinductive type $\nu \alpha.\;T + \bullet\alpha$, where $\bullet$ is the "next-step" modality.