Using find on a specific file at $filepath:
if [ -n "$(find "$filepath" -prune -size +1000000c)" ]; then printf '%s is strictly larger than 1 MB\n' "$filepath" fi
This uses find to query the specific file at $filepath for its size. If the size is greater than 1000000 bytes, find will print the pathname of the file, otherwise it will generate nothing. The -n test is true if the string has non-zero length, which in this case means that find outputted something, which in turns means that the file is larger than 1 MB.
You didn't ask about this: Finding all regular files that are larger than 1 MB under some $dirpath and printing a short message for each:
find "$dirpath" -type f -size +1000000c \ -exec printf '%s is larger than 1 MB\n' {} +
These pieces of code ought be to portable to any Unix.
Note also that using < or > in a test will test whether the two involved strings sort in a particular way lexicographically. These operators do not do numeric comparisons. For that, use -lt ("less than"), -le ("less than or equal to"), -gt ("greater than"), or -ge ("greater than or equal to"), -eq ("equal to"), or -ne ("not equal to"). These operators do integer comparisons.