Why does Google Calendar always show 31?
Why does Google use the number "31" in the calendar app? I assume you mean on a typical android phone like mine? Simply because the icon is an app icon and not a widget. An app icon is static and always appears the same.
Can Google Calendar show date on icon?
The Google calendar icon is actually dynamic (more accurately, it was until the recent icon update and I haven't tested since), so it can display the current date - but this only works if your device launcher is compatible with dynamic app icons, such as Nova Launcher.