How to make simple Fresnel in blender Open Shading Language?
The OSL global variable you're looking for is I

From the docs:


  vector I 
  
  The incident ray direction, pointing from the viewing position to the
  shading position P.


So, what's called 'View Dir' in your illustration is -I

Note that the 'viewing position' is the origin of any ray, not just those originating at the viewpoint/camera

EDIT: however, this is the shader which works as you expected in your post:

shader naive_fresnel(

           normal Normal = N,    
    output  float  Fac = 0.0 

)
{
    Fac = 1.0 - dot(normalize(Normal),I);
}


... which means I must be pointing towards the viewpoint? (BTW, the dot-product produces a scalar value, not a vector)

Loosely speaking, to Cycles, being physically-based, everything is a light, either directly, by emission, or indirectly, by scattering or reflection.

In standard use, how rays are actually cast is down to the integrator, not the shaders. OSL provides no direct access to the direction to lamps: the notion is that this kind of 'fake' is not required, or desirable, in a physically-based renderer.