Add action is used instead of hard-coding a function into WordPress. The benefit to using add_action is that you allow core wordpress functions to keep track of what has been added, and by doing so, can override previously added functions by de-registering them later on.
For example:
You download a plugin with a defined action/method named
add_action( 'init', 'crappy_method' );
You need to override the crappy function with your own:
remove_action('init', 'crappy_method' );
add_action( 'init', 'my_even_crappier_method' );
By doing this you can copy the original method and customize it without changing the original files. This is very useful with plugins so that you can update them later on without losing your changes.