Grab.app disappearing from dock?
This is called "Automatic Termination" and is also implemented for QuickTime Player and others.  The processes stay open in the background, so they re-open quickly, but with enough memory pressure (for other processes or applications for example) they will be forced to terminate.

To disable it, open Terminal (in /Applications/Utilities, or search via Spotlight) and type:

defaults write com.apple.Grab NSDisableAutomaticTermination -bool yes


Then hit enter. 
Make sure to properly quit and relaunch Grab after running this defaults write command.

To restore the original settings, run the following command:

defaults delete com.apple.Grab NSDisableAutomaticTermination


From the Apple Developers site:


  Automatic and Sudden Termination of Apps Improve the User Experience
  In OS X v10.7 and later, the use of the Quit command to terminate an
  app is diminished in favor of more user-centric techniques.
  Specifically, Cocoa supports two techniques that make the termination
  of an app transparent and fast:
  
  Automatic termination eliminates the need for users to quit an app.
  Instead, the system manages app termination transparently behind the
  scenes, terminating apps that are not in use to reclaim needed
  resources such as memory. Sudden termination allows the system to kill
  an app’s process immediately without waiting for it to perform any
  final actions. The system uses this technique to improve the speed of
  operations such as logging out of, restarting, or shutting down the
  computer. Automatic termination and sudden termination are independent
  techniques, although both are designed to improve the user experience
  of app termination. Although Apple recommends that apps support both,
  an app can support one technique and not the other. Apps that support
  both techniques can be terminated by the system without the app being
  involved at all. On the other hand, if an app supports sudden
  termination but not automatic termination, then it must be sent a Quit
  event, which it needs to process without displaying any user interface
  dialogs.
  
  Automatic termination transfers the job of managing processes from the
  user to the system, which is better equipped to handle the job. Users
  do not need to manage processes manually anyway. All they really need
  is to run apps and have those apps available when they need them.
  Automatic termination makes that possible while ensuring that system
  performance is not adversely affected.
  
  Apps must opt in to both automatic termination and sudden termination
  and implement appropriate support for them. In both cases, the app
  must ensure that any user data is saved well before termination can
  happen. And because the user does not quit an autoterminable app, such
  an app should also save the state of its user interface using the
  built-in Cocoa support. Saving and restoring the interface state
  provides the user with a sense of continuity between app launches.
  
  For information on how to support for automatic termination in your
  app, see Automatic Termination. For information on how to support
  sudden termination, see Sudden Termination.


Automatic and Sudden Termination of Apps Improve the User Experience