You need to set an explicit height on your .innerMenu element, as transitions require an actual value (i.e. non-auto or default) to be applied : 
.innerMenu {
  /* Example of initial height */
  height: 10px;
  border: thin solid green;
}
As a note, you may also want to consider adding a transition to the element as well to ensure that the animation is applied when the element is hovered on and off.
Example

.menu {
  width: 150px;
  height: 200px;
  border: thin solid red;
}
.innerMenu {
  height: 10px;
  border: thin solid green;
  transition: 2s;
  -webkit-transition: 2s;
  -moz-transition: 2s;
  -o-transition: 2s;
  -ms-transition: 2s;
}
div.menu:hover {
  width: 300px;
  transition: 2s;
  -webkit-transition: 2s;
  -moz-transition: 2s;
  -o-transition: 2s;
  -ms-transition: 2s;
}
div.innerMenu:hover {
  height: 60px;
  transition: 2s;
  -webkit-transition: 2s;
  -moz-transition: 2s;
  -o-transition: 2s;
  -ms-transition: 2s;
}
<div class="menu">
  <div class="innerMenu"></div>
  <div class="innerMenu"></div>
</div>