When a new Date() is used it passes a date-time object to the variable (e.g. Fri Oct 28 21:16:39 GMT+05:30 2016). So the time part of the object fails the comparison logic even if there is difference by microsecond.
This script loose the time part by using Utilities Class's formatDate method and compares Col A Date to Col B and returns whether its past,present or future.
function compareDate(){
  var ss = SpreadsheetApp.getActive();
  var sheet= ss.getActiveSheet();
  var Date1 = sheet.getRange("A1:A"+sheet.getDataRange().getLastRow()).getValues(); //Get ColA
  var Date2 = sheet.getRange("B1:B"+sheet.getDataRange().getLastRow()).getValues(); //Get ColB
  for(var i = 1; i<sheet.getDataRange().getLastRow();i++){  //iterate through date
  var fDate1 = Utilities.formatDate(Date1[i][0], "GMT","yyyy-MM-dd"); // formatting col A date without time
  var fDate2 = Utilities.formatDate(Date2[i][0], "GMT","yyyy-MM-dd"); // formatting col B date without time
     //Comparison logic
      if(fDate1 == fDate2){
          sheet.getRange("C"+i).setValue("Present");
      }
      else if (fDate1 < fDate2){
          sheet.getRange("C"+i).setValue("Future");
      }
      else if (fDate1 > fDate2){
         sheet.getRange("C"+i).setValue("Past");
     }
   }
}