Is there a way to take a look at the definition of an Async workflow? What happens under the hood to make the code in a different way than outside it?
If in Async workflow you mean the AsyncBuilder type that defines the behavior of async blocks, then you can find the definition in the control.fs file in the source distribution at the source \ fsharp \ FSharp.Core.
AsyncBuilder
async
The translation of a calculation expression into method calls in an instance of builder can be found in F # spec .
Adding kvb advice, the corresponding chapter of "Expert F #" don is available online:
http://download.microsoft.com/download/b/b/6/bb666ebe-e643-496f-b290-03527d157b47/Expert.F.Sharp_Ch13_8504Syme.pdf
It includes a short but informative section, "Under the Hood."