When searching against a database table, you create an index on the column that you are looking up against to find the rows that you are looking for. You want that index to be as small as possible so that you can find the records as quickly as possible taking up as little memory for the index as possible. An index on the QuestionId column will be a much smaller index than that on the question title. Then there's the problem that question titles do not need to be unique, if they did that would present a problem pretty quickly.
Now theory aside lets that practical implementation for a minute. Odds are the QuestionId column is the primary key and the primary key is probably the clustered index on the table. In order to use the question name to do the lookup (ignoring the duplicate value issue I already talked about) a non-clustered index would need to be created on the QuestionTitle column. Now when the SQL Server does the look up against that QuestionTitle column the index would either need to already have all the other values that were needed (QuestionId which it would have as the QuestionId is the primary key, the question body, etc) or the SQL Server would then need to go to the primary key to get these values which is called a Key Lookup which is an expensive operation as another lookup against the Clustered Index needs to be done which then requires another IO to the disk to be done.
When looking up against the Clustered Index all the values which are needed are already stored there in the data page, so the SQL Server doesn't need to do any additional IO to find the needed values.
I'm sure that at this point I've gone about 1000x more in depth than anyone here wants to read, but that's what happens when you let a DBA onto a developer forum. :)