Why is there such a difference between "first name" and "last name"?
你的姓是什么? is not a common way to ask someone's last name. 

The more common way is : 


"Title +贵姓?"  
"你姓什么?" (the noun '姓' here is acting like a verb (is family-named)



  In the past, most people in high society would have a 姓(family name), a 名 (given name) and a 字 (Courtesy name)


For example:


  曹操 Cao Cao
  
  姓:曹 (is last-named: Cao)
  
  名:操 (is first-named:Cao)
  
  字:孟德 (is courtesy-named: Meng Deo)
  
  You can call Cao Cao's 姓名, which is 曹操 (Cao Cao) and it is a formal address
  
  You can call Cao Cao's 姓 and 字, which is 曹孟德 (Cao Meng Deo) if you were close to him


In modern time, 名 and 字 are consolidated into 名字 for the meaning of 'name' . Few people, if any are using 字 nowadays

We only use 名字 as a noun, therefore we need a verb '是'(is) or '叫'(called) when asking what is someone's name. e.g. "你的名字是什么" or "你的名字叫什么"

Actually,  姓名 is almost interchangeable with 名字 in modern time

When someone ask "你的名字是什么?" It is more common to state your full name (全名) than just your given name 

Example:


  If Cao Cao was here , and someone asked him : "你叫什么名字?"(what is your name called), the following answers would all be correct:
  
  "我名叫曹操" ( he is stating his 姓名, which is the most common way to answer)
  
  "我名叫曹孟德" (he wants you to address him by his courtesy name) 
  
  (名 can be omitted in the two answers above)
  
  "我姓曹, 名操, 字孟德" (classical speech -- in this case, 姓, 名 and 字 all act like verb)