The code which dispatches ON_UPDATE_COMMAND_UI messages for menu items is implemented inside CFrameWnd, NOT CWnd. Since CDialog is derived from CWnd, you don't inherit this code. Bummer.
What can you do ? Well you can roll your own solution using the WM_INITMENUPOPUP message. For sample code, see this knowledgebase article:
You can also handle WM_KICKIDLE (which exists to support OnIdle-type functionality for dialogs) to achieve this : see John Wismar's article on CodeGuru, at the following URL :