The first key word is Shader followed by the
path/name of the
shader. The path defines the category where the shader is displayed in the drop down
menu when you are setting a material. The shader from the example is displayed under the
category of Custom shaders in the drop down
menu.

The Properties{} block lists the shader
parameters that are visible in the inspector and what parameters you can interact
with.

Each shader in Unity consists of a list of subshaders. When Unity renders a mesh, it looks for the shader to use, and
selects the first subshader that can run on the
graphics card. This way shaders are executed correctly on different graphics cards that
support different shader models. This feature is important because GPU hardware and APIs
are constantly evolving. For example, you can write your main shader targeting a Mali
Midgard GPU to make use of the latest features of OpenGL ES 3.0, while in a separate
subshader, write a replacement shader for graphics cards supporting OpenGL ES 2.0 and
below.

The Pass block causes the geometry of an
object to be rendered one time. A shader can contain one or more passes. You can use
multiple passes on old hardware, or to achieve special effects.

If Unity cannot find a subshader in the
body of the shader that can render the geometry correctly it rolls back to another
shader defined after the Fallback statement. In the
example this is the Diffuse built-in shader.