Contextual filter with taxonomy term that is not in the url
Instead of creating a node view create a taxonomy view.

In that provide two relationships:


Taxonomy term: Content with term;
Taxonomy term: Content using {Name of the taxonomy field in the
content type}*;
Add a contextual filter of the type Content : Title;
Use the first relationship for the contextual filter, Make necessary changes in the more option such as change to lower case turn space to dashes etc;
Add the required fields from the content with the relationship set to 2);


You are good to go.

EDIT : As per the discussion There was another need to also show the nodes under a term and its sub terms. 


Create a view of the type content;  
Add the required fields;
Add a contextual filter of the type Content: Has taxonomy term ID (with depth) and select the depth a value as deep as the hierarchy you have in the taxonomy. 


Now when you pass the term id as the input it would show all the nodes under that taxonomy term including the child nodes. 

If you wish to change the url to have the term name instead of the term ID Do the following.


In view give the path as taxonomy/term/% this will override the default taxonomy path;
Install Pathauto Module this depends on Tokens module so have to install that as well;   
In Configuration -> URL aliases you have a tab called Patters; 
Set the pattern of the "TAXONOMY TERM PATHS" to what you would like it to be. Make sure that the last value is [term:name] so if you want the path to be category/carrot you should give it as category/[term:name];
If you have already added the taxonomy terms then you would need to do the "BULK UPDATE" which is again a tab on the URL Alias page. 


Now when you visit the page category/termname you will see all the nodes under the term including the child terms.